cool IT Team-Blog

ASP.NET: Welche Routine im Page-Event Cycle dient wofür?

Page Life-Cycle Events

Page Event wann ausgelöst? Verwendung
PreInit Nachdem das Request- und das Response-Objekt initialisiert worden sind und auch evaluiert worden ist, ob es sich um ein PostBack handelt, aber vor der Initialisierung der Controls.
  • Erzeugung dynamischer Controls,
  • Setzen eines Themes,
  • Dynamisches Setzen einer Masterpage
Init Nachdem alle Controls initialisiert worden sind und die Skin-Settings angewendet worden sind.
Die Init-Events der Controls werden vor dem Init-Event der Page ausgelöst.

Zum Lesen oder Setzen von Control-Properties

InitComplete Zwischen Init und InitComplete liegt das Einschalten des ViewState-Trackings.
  • Das ist die richtige Stelle, um am ViewState etwas zu verändern, zum Beispiel das Enablen fürs nächste PostBack
PreLoad wird ausgelöst, nachdem
  • der ViewState für die Seite selbst und für alle Controls geladen wurde
  • und nachdem die PostBack-Daten ausgeführt worden sind
 
Load Wird aufgeruden, bevor das Load-Event aller auf der Seite enthaltenen Controls aufgerufen wird
  • Überprüfung, ob alle Validatoren erfolgreich waren (Page.IsValid)
  • Setzen von Controls-Eigenschaften
  • Aufbauen von Datenbank-Verbindungen und manuelles Auslesen von Daten aus der Datenbank, wenn es kein PostBack ist
  • Wiederherstellen von Control-Eigenschaften z.B. aus dem ViewState im Falle von PostBack
Control Events Button Click oder TextBox TextChanged ... Hier sollte im Falle eines PostBacks auch geprüft werden, ob alle Validation-Controls erfolgreich waren und die IsValid-Eigenschaft der Page true ist.
LoadComplete Nachdem alle Events abgearbeitet worden sind. Aufgaben, für die es notwendig ist, dass alle Controls vollständig geladen sind.
PreRender Wird zuerst für die Seite und danach für alle Controls aufgerufen, bevor die Seite wirklich gezeichnet wird. Hier sollten alle Veränderungen umgesetzt werden, die das Aussehen der Seite beeinflussen, vor allem inhaltlicher Natur.
PreRenderComplete Zwischen PreRender und PreRenderComplete werden die DataBind-Methoden der Controls aufgerufen. DataBind eines Controls wird immer vor dem tatsächlichen Binding aufgerufen. Daher besteht in DataBind die Möglichkeit, die Datenbefüllung zu beeinflussen.
SaveStateComplete Schreiben des ViewState. Alle späteren Änderungen haben keinen Einfluss mehr auf das nächste PostBack und werden nicht mehr gesichert.  
Render Eigentlich kein Event, sondern eine Methode, die für alle Custom Controls oder für die Seite überschrieben werden kann. Diese Methode sollte dann überschrieben werden, wenn der resultierende Markup-Code vom Standardverhalten abweichen soll.
Beispiel: Darstellung einer CheckBox als ja/nein-Feld.
Unload Wird zuerste für alle Controls und zuletzt für die Seite selbst aufgerufen. Freigeben lokaler Ressourcen, zum Beispiel geöffnete Files, oder Datenbankverbindungen.
Sollte immer möglichst lokal umgesetzt werden (Control vs. Page)

Generell ist wichtig, immer alle Operationen so nahe wie möglich am Entstehungsort auszuführen. Besitzt beispielsweise ein Custom Control eine Eigenschaft, sollten alle Veränderungen, die diese Eigenschaft betreffen, im Custom Control umgesetzt werden, solange diese Änderungen allgemeingültig sind.

Init und Unload werden für Controls VOR dem Init und Unload der Page ausgeführt (in umgekehrter Reihenfolge, das heißt für das letzte Element im Container zuerst) und Load wird für alle Controls NACH dem Load der Page ausgeführt (und zwar Top-Down).

Weitere Ressourcen zum detaillierten Nachlesen:

http://msdn.microsoft.com/en-us/library/aa719775(vs.71).aspx
http://msdn.microsoft.com/en-us/library/ms178472.aspx
http://msdn.microsoft.com/en-us/library/wf922ts9(vs.71).aspx

Ist doch cool, oder?

LG,
Sabine.
Verfasst: 25.01.2012 09:42:39 von Sabine Stiller
Tags: ASP.NET, Page Events, Page Life Cycle, Page Lifecycle

1


Kommentare
Für diesen Blogbeitrag liegen zurzeit keine Kommentare vor.
Einen Kommentar schreiben



 Security code