您的位置:首页 > 编程语言 > ASP

关于asp.net中页面事件加载的先后顺序

2008-06-26 13:51 405 查看
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_DisposedPage对象从内存中释放掉。这是Page对象生命周期中的最后一个事件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: