Je mehr ich verwende ASP.NET, desto mehr if (!IsPostBack) {}
sinnlos scheint ...Implementierung von IsPostBack in Seitenlade
Erstes Beispiel:
Zum Beispiel habe ich ein Problem, gerade gegoogelt, sagten, dass sie dies als Teil der Lösung:
Was genau wie codiert funktioniert, wird LoadComplete nur auf die erste Ladung ausgelöst. Nach dem Klicken auf eine Schaltfläche oder irgendetwas, das ein Postback auslöst, wird das LoadComplete-Ereignis nicht ausgehakt und überspringt den Ereignishandler. Daher funktioniert ihr "Fix" nur bei der ersten Ladung = wertlos. Ich habe die if (!Page.IsPostBack) {}
sofort auskommentiert und jetzt löst das Ereignis immer wie gewünscht aus.
Zweites Beispiel:
Ich bin versucht, Ereignisse in einer dynamisch erzeugten Schaltfläche Haken (die übrigens, ich kann nicht an die Arbeit [GRR!]). Ich sehe Beispiele dies zeigen:
myEditToggleButton = new Button();
myEditToggleButton.ID = "editToggleButton";
//^GOTTA HAVE THIS FOR EVENTS TO WORK! (supposedly, I haven't seen it work...)
if (!IsPostBack)
{
myEditToggleButton.Click += new EventHandler(myEditToggleButton_Click);
}
Controls.Add(myEditToggleButton);
Wie das erste Beispiel, mein Verständnis ist, dass das Ereignis nicht nach der ersten Seite Last angeschlossen werden würde, so ist die Taste „inert“ nach einem Klick (weil Anklicken einer ausgelöst Postback).
Frage:
Wann sollten Sie if (!IsPostBack) {}
verwenden? Ich vermute, es hat nur mit Markup-Steuerelementen zu tun.
Ehrlich gesagt, ist jeder Code im Load-Event, der nicht in einem! Page.IsPostBack eingeschlossen ist, eine rote Flagge für mich während Code-Überprüfungen. Es deutet oft auf ein Missverständnis der Funktionsweise von Webforms hin, insbesondere im Hinblick auf die Datenbindung. –