Ich habe eine Benutzerliste auf der linken Seite meiner Seite in einem Datagrid und ich möchte ein div auf der rechten Seite meiner Seite mit den angeklickt Benutzerinformationen laden. Ich gehe davon aus, dass ich das div im itemcommand-Event laden werde, aber wie gehe ich dann mit dem Laden der Seite um? Muss ich wissen, was das Postback verursacht hat? Muss ich das Gitter auch auf page_load
neu laden?Ermitteln, ob Postback page_load oder itemcommand ist
Antwort
Ausschließen das Gitter mit der Überprüfung Bindung! IsPostBack
if(!IsPostBack){
// Bind the Grid
}
Für div ItemCommand Sie erhalten den Wert abrufen, von denen aus Raster angeklickt wird und die Informationen des Benutzers zu laden.
So müssen Sie das Raster nicht jedes Mal laden. Es wird nur beim ersten Mal geladen. Ich denke nicht, dass Sie überprüfen müssen, was das Postback gekürzt hat, denn sowieso werden Sie das Raster nur einmal laden.
Wie gehe ich dann mit der Seitenladung um?
Jedes Postback verwendet eine neue Instanz Ihrer Seitenklasse und erstellt die Seite vollständig neu. Das einzige, was anders ist, ist, dass einige Steuerelemente über ViewState vorbelegt sind. Sie müssen die Ladefunktion für diese Steuerelemente nicht wiederholen.
Muss ich wissen, was das Postback verursacht hat?
ASP.Net übernimmt das für Sie und feuert das Ereignis ab. Sie müssen nur wissen, ob es ein Postback ist und vielleicht nicht einmal das (siehe nächster Teil).
Muss ich das Raster auch auf page_load neu laden?
Ja. Naja, so ungefähr. Sie müssen den HTML-Code für das Raster an den Browser erneut rendern. Die gute Nachricht ist, dass Ihre Grid-Daten bereits im Viewstate sind und automatisch passieren. Sie müssen sich nicht selbst darum kümmern.
In vielen Fällen kann es jedoch sein, dass Sie ViewState für Grids deaktivieren und diese bei jedem Postback neu laden. Dies liegt daran, dass ViewState nur eine versteckte Eingabe auf Ihrer Seite ist, die mit jeder Anfrage an den Server gesendet (hochgeladen) werden muss. Die meisten Internetnutzer haben eine sehr begrenzte Upload-Bandbreite, und so kann ein großer ViewState dazu führen, dass Ihre Website scheinbar stumpf erscheint, auch wenn Ihr Server kaum ins Schwitzen kommt.
Abhängig von Ihrer Situation können Sie es besser machen, indem Sie die Serverperformance über die Serverleistung für die Reaktionsfähigkeit der Website tauschen, indem Sie ViewState für ausgewählte Steuerelemente deaktivieren. In diesem Fall werden Sie immer das Raster laden und müssen nicht mehr darauf achten, ob eine Anfrage ein Postback ist oder nicht.
Im Gegensatz dazu, wenn dies eine intellectual net Anwendung ist, wo Benutzer in der Regel lokale Ethernet-Verbindungen zu Ihrem Web-Server haben, ist es kaum zu schlagen ViewState für den Ausgleich von Reaktionszeit und Serverleistung.