2009-06-02 5 views
2

Vom ASP.Net Page Lifecycle article on MSDN:Warum werden einige Ereignisse in untergeordneten Steuerelementen im ASP.Net-Seitenzyklus in umgekehrter Reihenfolge ausgelöst?

Obwohl beide Init und rekursiv auf jeder Steuerung auftreten laden, passieren sie in umgekehrter Reihenfolge. Das Init-Ereignis (und auch das Unload-Ereignis) für jedes untergeordnete Steuerelement wird ausgeführt, bevor das entsprechende Ereignis für seinen Container ausgelöst wird (von unten nach oben). Das Load-Ereignis für einen Container tritt jedoch vor dem Load-Ereignis für seine untergeordneten Steuerelemente auf (von oben nach unten).

Das macht sehr viel Sinn für das unload Ereignis, aber warum für init? Was ist mit den anderen Ereignissen?

Mit freundlichen Grüßen

Antwort

5

Dies ist darauf zurückzuführen, wie diese Seiten erstellt werden - die Bedienelemente sind die Eigenschaften der Klasse Seite. Sie werden beim Initialisieren der Klasse erstellt (und somit initialisiert), wodurch sichergestellt wird, dass ihre Instanzen während des Initialisierungsereignisses des Konstruktors und der Seite verfügbar sind.

Dann, wenn geladen, prerender und render-Ereignisse auftreten, wird das Ereignis der Seite zuerst ausgelöst und kaskadiert die Ereignisse für alles darin.

Beim Entladen und Entsorgen werden die Immobilienobjekte zuerst wieder behandelt.

Das WebForm-Seitenereignismodell ist etwas zu kompliziert, IMHO.

Verwandte Themen