2017年5月7日 星期日

[ASP.NET] Page事件發生先後順序

PreInit 事件:執行預先初始化的工作,在ASP.NET 2.0中,若要動態調整主版頁面 (Master Page)、佈景主題 (Theme) 時,要在這個事件中調整。
Init 事件:執行初始化工作。
InitCompleted 事件:在完成初始化工作後引發。
Preload 事件:執行預先載入的工作。
Load 事件:執行載入的工作,大多數的網頁都擁有 Page_Load 事件處理常式,使用者控制項 (user control) 中也有 Page_Load 事件常式,都會在此時呼叫。
控制項的 PostBack 變更通知:當網頁偵測到是 PostBack 要求時,會引發 PostBack 訊息通知的事件。
控制項的 PostBack 相關事件:當網頁偵測到是 PostBack 要求時,會引發 PostBack 訊息指定的控制項的事件。
LoadCompleted 事件:執行載入完成後的工作。
PreRender 事件:處理在產生 HTML 結果前的工作。
SaveStateCompleted 事件:處理頁面狀態(ViewState ControlState)儲存完成後的事件。
Render 事件:處理產生 HTML 的工作。
Unload 事件:處理結束網頁處理時的工作。

沒有使用 Master Page 情況下:
Page.PreInit
Page.Init
Page.InitComplete
Page.PreLoad
Page.Load
Page.LoadComplete
Page.PreRender
Page.PreRenderComplete

使用了 MasterPage 情況, MasterPage ContentPage 事件順序:
ContentPage.PreInit
Master.Init
ContentPage.Init
ContentPage.InitComplete
ContentPage.PreLoad
ContentPage.Load
Master.Load
ContentPage.LoadComplete
ContentPage.PreRender
Master.PreRender

ContentPage.PreRenderComplete