2010年9月16日 星期四

ASP.NET 頁面事件順序

引用 : http://www.cnblogs.com/steden/archive/2010/04/07/1705864.html
ASP.NET 2.0 中 Page 事件的執行順序
Page 執行中將按照如下順序發生事件:
Page.PreInit
Page.Init
Page.InitComplite
Page.PreLoad
Page.Load
Page.LoadComplete
Page.PreRender
Page.PreRenderComplete

Page.PreInit
Page.Init
Page.InitComplite
Page.PreLoad
Page.Load
Page.LoadComplete
Page.PreRender
Page.PreRenderComplete


如果頁面從另一個頁面繼承,如 BasePage : System.Web.UI.Page,
在 BasePage 中做了一些擴展,如權限檢查,而其他頁面從 BasePage 繼承,
則 BasePage 和最终 Page 的事件發生順序是:
UI.PreInit
Page.PreInit
UI.Init
Page.Init
UI.InitComplite
Page.InitComplite
UI.PreLoad
Page.PreLoad
UI.Load
Page.Load
UI.LoadComplete
Page.LoadComplete
UI.PreRender
Page.PreRender
UI.PreRenderComplete
Page.PreRenderComplete

UI.PreInit
Page.PreInit
UI.Init
Page.Init
UI.InitComplite
Page.InitComplite
UI.PreLoad
Page.PreLoad
UI.Load
Page.Load
UI.LoadComplete
Page.LoadComplete
UI.PreRender
Page.PreRender
UI.PreRenderComplete
Page.PreRenderComplete


如果使用了 MasterPage,
則 MasterPage 中的事件和 ContentPage 中的事件按照下面順序發生:
ContentPage.PreInit
Master.Init
ContentPage.Init
ContentPage.InitComplite
ContentPage.PreLoad
ContentPage.Load
Master.Load
ContentPage.LoadComplete
ContentPage.PreRender
Master.PreRender
ContentPage.PreRenderComplete
ContentPage.PreInit
Master.InitContent
Page.InitContent
Page.InitCompliteContent
Page.PreLoadContent
Page.Load
Master.LoadContent
Page.LoadComplete
ContentPage.PreRender
Master.PreRenderContent
Page.PreRenderComplete


如果 ContentPage 繼承 BasePage,
各事件的執行順序將變成:
UI.PreInit
ContentPage.PreInit
Master.Init
UI.Init
ContentPage.Init
UI.InitComplite
ContentPage.InitComplite
UI.PreLoad
ContentPage.PreLoad
UI.Load
ContentPage.Load
Master.Load
UI.LoadComplete
ContentPage.LoadComplete
UI.PreRender
ContentPage.PreRender
Master.PreRender
UI.PreRenderComplete
ContentPage.PreRenderComplete


沒有留言 :

張貼留言

Related Posts Plugin for WordPress, Blogger...