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对象生命周期中的最后一个事件

 

 

posted @ 2010-07-16 10:04  ReadQi  阅读(567)  评论(1编辑  收藏  举报