2009-05-29 1 views
0

を制御し、それは私が奇妙な結果にユーザーにPage.IsPostBackをチェックする

編集〜を取得しています

protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!Page.IsPostBack) 
     { 


     } 


    } 

のようなユーザーコントロールのPage_LoadイベントでPage.IsPostBackをチェックすることをお勧めします。ここのものです。メインフォームがロードされると、Request.QueryStringを使用して顧客IDを取得し、これをSESSION変数に配置します。

コントロールのロードイベントで、その顧客のデータを取得するためにSESSION変数を読み取りました。だから、私はコントロールレベルでポストバックをチェックする必要がありますか?

編集〜ここでは、制御ここ

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(); 
      } 
     } 

    } 

のloadイベントが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

「奇妙な結果」とは何ですか? –

+0

データを取得することがあり、時にはデータを取得できないことがあります。私がPostBackを削除すれば、すべて正常に動作します。私は自分のポストを編集しています。 –

+0

なぜそれをセッション変数に入れなければならないのですか?コントロールからリクエストにアクセスできないのはなぜですか? – womp

答えて

0

ページの読み込みに「!IsPostBack」を使用すると、ユーザーが他のコントロールをクリックするとポストバックが実行されるため、データが取得されません。 私はあなたに役立つことを願っています。

0

ただ理由もなく、それをチェックしますか?絶対違う。最初の読み込み時にのみ何かを行い、その後のポストバックには何もしない場合は、それを使用するパターンです。

0

ページにアクセスするまでに、セッションに「CustomerNumber」が常に保存されていることを確認してください。あなたがデータを取得したときとしなかったときにあなたが見つけることができる韻や理由はありますか?

+0

時々私はデータを取得することがあります。私がPostBackを削除すれば、すべて正常に動作します。私は自分のポストを編集しています。 –

関連する問題