Heim > Artikel > Backend-Entwicklung > In welcher Reihenfolge werden Asp.NET-Seitenereignisse geladen?
Dieser Artikel stellt Ihnen hauptsächlich die Reihenfolge des Ladens von Ereignissen in Asp.NET-Seiten vor. Der Artikel stellt es detailliert anhand von Bildern, Texten und Beispielcodes vor. Es hat einen gewissen Referenz- und Lernwert für alle, die es benötigen Komm und lerne mit mir.
Dieser Artikel stellt Ihnen hauptsächlich den relevanten Inhalt zur Ladesequenz von Asp.NET-Seitenereignissen vor und gibt ihn als Referenz und zum Studium weiter. Im Folgenden gibt es nicht viel zu sagen, werfen wir einen Blick auf die detaillierte Einführung:
Ereignisse in ASP.NET-Masterseiten und Inhaltsseiten
Wir wissen, dass sowohl Masterseiten als auch Inhaltsseiten Ereignishandler für Steuerelemente enthalten können. Bei Steuerelementen lösen Steuerelemente auf der Inhaltsseite Ereignisse auf der Inhaltsseite aus und Steuerelemente auf der Masterseite lösen Ereignisse auf der Masterseite aus. Steuerelementereignisse werden nicht von der Inhaltsseite an die Masterseite gesendet, und Ereignisse von Masterseitensteuerelementen können nicht auf der Inhaltsseite verarbeitet werden, sondern nur innerhalb ihrer eigenen Ereignisse.
Das Folgende ist die Reihenfolge der Ereignisse, nachdem die Masterseite (Master) und die Inhaltsseite (ContentPage) zusammengeführt wurden:
Master页面控件 Init 事件。 ContentPage页面控件 Init 事件。 Master页 Init 事件。 ContentPage页 Init 事件。 ContentPage页 Load 事件。 Master页 Load 事件。 ContentPage页面控件 Load 事件。 ContentPage页面 PreRender 事件。 Master页面 PreRender 事件。 Master页面控件 PreRender 事件。 ContentPage页面控件 PreRender 事件。
Die Reihenfolge der Ereignisse auf Masterseiten und Inhaltsseiten ist für Seitenentwickler nicht wichtig. Wenn Sie jedoch Ereignishandler erstellen, die von der Verfügbarkeit bestimmter Ereignisse abhängen, ist es hilfreich, die Reihenfolge der Ereignisse auf der Masterseite und der Inhaltsseite zu verstehen.
Die Reihenfolge des Ladens von Seitenereignissen in Asp.Net
1 Wenn eine einzelne Seite ausgeführt wird, werden im Folgenden Ereignisse aktiviert Reihenfolge:
Page.PreInit Page.Init Page.InitComplite Page.PreLoad Page.Load Page.LoadComplete Page.PreRender Page.PreRenderComplete
2. Wenn die Seite von einer anderen Seite erbt, z. B. BasePage:System.Web.UI.Page
, fügen Sie BasePage eine Überprüfungsfunktion hinzu, z. B. ob Sie angemeldet sind , ob Sie Berechtigungen haben usw. Überprüfen Sie, während andere Seiten von BasePage erben, die Ereignisaktivierungssequenz von BasePage und der endgültigen Seite ist:
BasePage.PreInit Page.PreInit BasePage.Init Page.Init BasePage.InitComplite Page.InitComplite BasePage.PreLoad Page.PreLoad BasePage.Load Page.Load BasePage.LoadComplete Page.LoadComplete BasePage.PreRender Page.PreRender BasePage.PreRenderComplete Page.PreRenderComplete
3. Wenn MasterPage verwendet wird, werden die Ereignisse in MasterPage und die Ereignisse in ContentPage in der folgenden Reihenfolge aktiviert:
ContentPage.PreInit Master.Init ContentPage.Init ContentPage.InitComplite ContentPage.PreLoad ContentPage.Load Master.Load ContentPage.LoadComplete ContentPage.PreRender Master.PreRender ContentPage.PreRenderComplete
Es ist zu beachten, dass dies der Fall ist kein PreInit-Ereignis im Master.
4. Wenn ContentPage BasePage erbt, lautet die Ausführungsreihenfolge jedes Ereignisses:
BasePage.PreInit ContentPage.PreInit Master.Init BasePage.Init ContentPage.Init BasePage.InitComplite ContentPage.InitComplite BasePage.PreLoad ContentPage.PreLoad BasePage.Load ContentPage.Load Master.Load BasePage.LoadComplete ContentPage.LoadComplete BasePage.PreRender ContentPage.PreRender Master.PreRender BasePage.PreRenderComplete ContentPage.PreRenderComplete
Denken Sie daran: Laden Sie zuerst die geerbte Seite und dann sich selbst. Wenn die geerbte Seite über eine Vererbung verfügt, laden Sie zuerst die Vererbung der geerbten Seite.
Name des Ereignishandlers | Auftrittszeit | ||||||||||||||||||||
Page_Init td > | Lädt das Serversteuerelement im Ansichtszustand des Webformulars und initialisiert es. Dies ist der erste Schritt im Formularlebenszyklus. | ||||||||||||||||||||
Page_Load | Lädt das Serversteuerelement auf das Seitenobjekt. Da die Informationen zum Ansichtsstatus zu diesem Zeitpunkt verfügbar sind, können Sie hier Code verwenden, um die Einstellungen des Bereichs zu ändern oder Text auf der Seite anzuzeigen. | ||||||||||||||||||||
Page_PreRender | Die Anwendung rendert die Seite | ||||||||||||||||||||
|
Seite aus Speicher entladen | ||||||||||||||||||||
Page_Error | unbehandelte Ausnahme aufgetreten | ||||||||||||||||||||
Page_AbortTransaction | Transaktion wurde beendet | ||||||||||||||||||||
Page_CommitTransaction | Transaktion akzeptiert | ||||||||||||||||||||
Page_DataBinding | Binden Sie den Serverraum und die Datenquelle auf der Seite | ||||||||||||||||||||
Page_Disposed | Das Seitenobjekt wird aus dem Speicher freigegeben. Dies ist das letzte Ereignis im Lebenszyklus des Page-Objekts |
Init-, Load-, PreRender-Ereignisausführungssequenz:
1) Init-Ereignis des Steuerelements
2) Init-Ereignis der Seite wo sich das Steuerelement befindet
3) Ladeereignis der Seite, auf der sich das Steuerelement befindet
4) Ladeereignis des Steuerelements
5) PreRender-Ereignis der Seite, auf der sich das Steuerelement befindet
6) PreRender-Ereignis des Steuerelements
Einige Erfahrungen aus persönlicher Recherche: (Die folgenden zwei Punkte können Dies kann durch Erstellen einer selbst erstellten Seite und Umschreiben verwandter Ereignisse überprüft werden)
1 Das Init-Ereignis wird vom innersten Steuerelement (z. B. Benutzersteuerelement) zum äußersten Steuerelement (Seite) usw. erhöht Ereignisse wie Load und PreRender werden vom äußersten Steuerelement zum innersten Steuerelement erhöht.
2. Die Ausführungsreihenfolge derselben Ereignisse zwischen Steuerelementen ist von links nach rechts und von oben nach unten entsprechend der Position des Steuerelements auf der Seite.
Hinweis:
1. Denken Sie daran, dass ein Benutzersteuerelement auch als Steuerelement auf der Seite betrachtet wird >
2. Betrachtet man das Benutzersteuerelement als separate Spezialseite, folgen auch es selbst und die darin enthaltenen Steuerelemente denselben Regeln.
3. Wenn das Onload-Ereignis des Client-Body-Objekts im Client-Programm (z. B. JavaScript) verwendet wird, beachten Sie, dass dieses Client-Ereignis zuletzt ausgeführt wird, also nach allen serverseitigen Ereignissen wurden einfach ausgeführt.
4. Es gibt keine PreInit- und OnComplete-Ereignisse in Master und benutzerdefinierten Steuerelementen. Master selbst ist ein Benutzersteuerelement, das TemplateControl erbt, und TemplateControl erbt Control Control.-Ereignis (Teil-Screenshot), Sie können auch dieses offizielle Dokument anzeigen: https://referencesource.microsoft.com/#System.Web/UI/Control.cs,87dbac93d9749fa2.
Das obige ist der detaillierte Inhalt vonIn welcher Reihenfolge werden Asp.NET-Seitenereignisse geladen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!