2009-05-29 45 views
0

最好先檢查Page.IsPostBack用戶控件Page_Load事件像用戶檢查Page.IsPostBack控制

protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!Page.IsPostBack) 
     { 


     } 


    } 

我得到奇怪的結果

編輯〜這裏是東西。當主窗體被加載時,我使用Request.QueryString獲取客戶ID,然後將其放置在SESSION變量中。

在控制Load事件上,我讀取SESSION變量以獲取該客戶的數據。那麼,我需要在控制層面檢查PostBack嗎?

編輯〜這裏是控制

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      //Getting and storing the customer account number 
      if (string.IsNullOrEmpty((string)Session["CustomerNumber"])) 
      { 
       Session["CustomerNumber"] = cust.GetCustomerNumber(myHelper.GetCustomerIDFromQueryString()); 
       LoadProductData(); 
      } 
     } 

    } 

這裏的負載事件是myHelper類

static class myHelper 
{ 
    public static Guid GetCustomerIDFromQueryString() 
    { 
     //Getting the GUID (used as customerid in CRM) from the URL request of the selected account. 
     return Sql.ToGuid(System.Web.HttpContext.Current.Request["ID"]); 
    } 

} 

}

+0

你會得到什麼「奇怪的結果」? – 2009-05-29 18:34:01

+0

有時我會收到數據,有時候不會。如果我刪除回發一切工作正常。我用我正在做的事情編輯我的劇本。 – 2009-05-29 18:36:30

回答

0

如果您在頁面加載中使用「!IsPostBack」,當用戶單擊其他控件時,它會執行回發功能,因此您無法獲取數據。 我希望能幫到你。

0

就檢查它沒有理由?絕對不。如果你應該只在第一次加載時做某些事情,而不是在後續的後期加載時,那麼這就是應該使用的模式。

0

您確定在您訪問您的頁面時,您將始終存儲會話中已存儲的「CustomerNumber」?當你得到數據或不知道什麼時候,你能找到什麼韻律或理由?