2009-05-29 8 views
0

Ist es empfohlenPage.IsPostBack in Benutzer prüfen steuert

protected void Page_Load(object sender, EventArgs e) 
    { 

     if (!Page.IsPostBack) 
     { 


     } 


    } 

wie die Page.IsPostBack in einem Benutzersteuer Page_Load Ereignis zu überprüfen ~ Hier ist die Sache. Wenn das Hauptformular geladen ist, verwende ich Request.QueryString, um die Kundennummer zu erhalten, die ich dann in eine SESSION-Variable setze.

Auf dem Steuerelement Load-Ereignis lese ich die Variable SESSION, um die Daten für diesen Kunden zu erhalten. Muss ich PostBack auf der Steuerungsebene überprüfen?

Bearbeiten ~ Hier ist die Ladeereignis des Steuer

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

    } 

Hier ist die myHelper Klasse

ist
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

Welche "seltsamen Ergebnisse" bekommen Sie? –

+0

Manchmal bekomme ich Daten und manchmal nicht. Wenn ich das PostBack entferne, funktioniert alles gut. Ich habe meinen Poost mit genau dem bearbeitet, was ich mache. –

+0

Warum müssen Sie es überhaupt in eine Sitzungsvariable einfügen? Warum können Sie nicht einfach auf die Anfrage von Ihrem Steuerelement zugreifen? – womp

Antwort

0

Wenn Sie "! IsPostBack" beim Laden der Seite verwenden, wenn der Benutzer auf ein anderes Steuerelement klickt, wird ein postBack ausgeführt, damit Sie Ihre Daten nicht erhalten. Ich hoffe das hilft dir.

0

Just checking es ohne Grund? Absolut nicht. Wenn Sie etwas nur beim ersten Laden und nicht bei nachfolgenden Postbacks tun sollten, dann ist es das Muster, das verwendet werden sollte.

0

Sind Sie sicher, dass Sie immer eine "CustomerNumber" bereits in der Sitzung gespeichert haben, wenn Sie auf Ihre Seite gelangen? Gibt es einen Reim oder einen Grund, warum Sie herausfinden können, wann Sie Daten erhalten und wann nicht?

+0

Manchmal bekomme ich Daten und manchmal nicht. Wenn ich das PostBack entferne, funktioniert alles gut. Ich habe meinen Poost mit genau dem bearbeitet, was ich mache. –