-- 作者:admin
-- 发布时间:2009/9/15 10:28:52
-- asp.net页面事件加载顺序
Page 执行中将按照如下顺序激活事件:
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
如果使用了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继承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
浏览下来发现并不是我现在所学的asp.net 1.1,估计应该是asp.net 2.0,
不过也没有关系,这让我知道了他们有继承时加载的顺序。
即:先加载继承页的,在加载自己的,如果继承页有继承则先加载继承页的继承。
其实是个很简单的内容。顺便写下Page事件(不知道1.1是不是就这些)
事件处理器名称 |
发生时间 |
Page_Init |
在Web窗体的视图状态加载服务器控件并对其初始化。
这是web窗体生命周期的第一步 |
Page_Load |
在Page对象上载入服务器控件。由于此时视图状态信息是可以使用的,
因此载这里可以用代码来改变空间的设置或者载页面上显示文本。 |
Page_PreRender |
应用程序将要呈现Page对象 |
Page_Unload |
页面从内存中卸载 |
Page_Error |
发生未处理的异常 |
Page_AbortTransaction |
事务处理被终止 |
Page_CommitTransaction |
事务处理被接受 |
Page_DataBinding |
把页面上的服务器空间和数据源绑定载一起 |
Page_Disposed |
Page对象从内存中释放掉。这是Page对象生命周期中的最后一个事件 |
|