Heim  >  Artikel  >  Backend-Entwicklung  >  In welcher Reihenfolge werden Asp.NET-Seitenereignisse geladen?

In welcher Reihenfolge werden Asp.NET-Seitenereignisse geladen?

巴扎黑
巴扎黑Original
2017-08-06 09:38:371750Durchsuche

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
事件处理器名称 发生时间
Page_Init 在Web窗体的视图状态加载服务器控件并对其初始化。 这是窗体生命周期的第一步
Page_Load 在Page对象上载入服务器控件。由于此时视图状态信息是可以使用的,因此载这里可以用代码来改变空间的设置或者载页面上显示文本。
Page_PreRender 应用程序将要呈现Page

Page_Unload

页面从内存中卸载

Page_Error

发生未处理的异常

Page_AbortTransaction

事务处理被终止

Page_CommitTransaction

事务处理被接受

Page_DataBinding

把页面上的服务器空间和数据源绑定载一起

Page_Disposed

Page对象从内存中释放掉。这是Page对象生命周期中的最后一个事件

Page_Unload td>
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn