苏飞论坛

标题: asp.net页面与母版页面事件加载顺序 [打印本页]

作者: 站长苏飞    时间: 2019-1-22 09:07
标题: asp.net页面与母版页面事件加载顺序
Asp.Net页面(母版页)加载顺序
Page 执行中将按照如下顺序激活事件:
[C#] 纯文本查看 复制代码
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的事件激活顺序是:
[C#] 纯文本查看 复制代码
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中的事件按照下面顺序激活:
[C#] 纯文本查看 复制代码
ContentPage.PreInit
Master.Init
ContentPage.Init
ContentPage.InitComplite
ContentPage.PreLoad
ContentPage.Load
Master.Load
ContentPage.LoadComplete
ContentPage.PreRender
Master.PreRender
ContentPage.PreRenderComplete
更进一步,如果ContentPage继承BasePage,那么,各事件的执行顺序将变成:
[C#] 纯文本查看 复制代码
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_DisposedPage对象从内存中释放掉。这是Page对象生命周期中的最后一个事件


作者: 范范    时间: 2019-1-22 09:55
强烈支持楼主ing……
作者: Amy    时间: 2019-1-22 16:22
强烈支持楼主ing……
作者: 竹林风    时间: 2019-1-22 20:25
感恩无私的分享与奉献
作者: 惜    时间: 2019-1-23 13:09
我只是路过打酱油的。




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4