母版页与内容页的调用顺序.doc

母版页与内容页的调用顺序 ? 母版页与内容页的调用顺序2011-03-13 10:22 母版页和内容页都可以包含控件的事件处理程序。对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件。控件事件不会从内容页发送到母版页。同样,也不能在内容页中处理来自母版页控件的事件。 在某些情况下,内容页和母版页中会引发相同的事件。例如,两者都引发Init和Load事件。引发事件的一般规则是初始化事件从最里面的控件向最外面的控件引发,所有其他事件则从最外面的控件向最里面的控件引发。请记住,母版页会合并到内容页中并被视为内容页中的一个控件,这一点十分有用。 下面是母版页与内容页合并后事件的发生顺序: 母版页控件Init事件。 内容控件Init事件。 母版页Init事件。 内容页Init事件。 内容页Load事件。 母版页Load事件。 内容控件Load事件。 内容页PreRender事件。 母版页PreRender事件。 母版页控件PreRender事件。 内容控件PreRender事件。 关于中页面事件加载的先后顺序 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 浏览下来发现并不是我现在所学的1.1,估计应该是2.0 不过也没有关系,这让我知道了他们有继承时加载的顺序。 即:先加载继承页的,再加载自己的,如果继承页有继承则先加载继承页的继承。 其实是个很简单的内容。顺便写下Page事件(不知道1.1是不是就这些) 事件处理器名称 发生时间 Page_Init 在Web窗体的视图状态加载服务器控件并对其初始化。 这是web窗体生命周期的第一步 Page_Load在Page对象上载入服务器控件。由于此时视图状态信息是可以使用的, 因此载这里可以用代码来改变空间的设置或者载页面上显示文本。 Page_PreRender应用程序将要呈现Page对象 Page_Unload页面从内存中卸载 Page_Error发生未处理的异常 Page_AbortTransaction事务处理被终止 Page_CommitTransaction事务处理被接受 Page_DataBin

文档评论(0)

1亿VIP精品文档

相关文档