Asp.NET页面事件加载顺序的详细说明
本文主要介绍Asp.NET页面事件加载顺序的相关内容,并分享给大家参考和学习。下面就不多说了,我们来看看详细的介绍:
ASP.NET主页和内容页中的事件
我们知道母版页和内容页都可以包含控件的事件处理程序。对于控件,内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件。控件事件不会从内容页发送到母版页,并且不能在内容页中处理来自母版页控件的事件;它们只在自己的事件中处理。
以下是母版页和内容页合并后的事件顺序:
母版页控件Init事件。ContentPage页控件的Init事件。母版页初始化事件。ContentPage页面的Init事件。内容页面页面加载事件。母版页加载事件。内容页面页面控件的加载事件。ContentPage的Page PreRender事件。母版页先决条件事件。母版页控件PreRender事件。ContentPage页控件的PreRender事件。母版页和内容页中事件的顺序对页面开发人员来说并不重要。但是,如果您创建的事件处理程序取决于某些事件的可用性,那么了解母版页和内容页中事件的顺序会很有帮助。
Asp中加载页面事件的顺序。网
1.在单个页面执行期间,事件将按以下顺序激活:
page . preint page . init page . init compile . preload page . load page . loadcomplete page . prerenderpage . prerendercomplete 2 .如果页面继承自另一个页面,例如,BasePage:system。web.ui.Page在BasePage中增加了验证功能,比如检查你是否登录或者有权限,其他页面从BasePage继承,所以basepage和最终页面的事件激活顺序为:
BasePage。preinit page . preinitbase page . init page . init base page . initcompletepage . initcomplettebase page . preload page . preloadbase page . load page . load base page . load complete page . load complete page。loadcompletepage . prerenderpage . prerenderbasepage . prerendercompletepage . prerendercompletepage 3 .如果使用母版页,母版页中的事件和内容页中的事件将按以下顺序激活:
ContentPage。PreInitMaster . initcontentpage . initcontentpage . initcompetecontentpage . preloadcontentpage . loadmaster . loadcontentpage . loadcompletecontentpage。prerenderMaster。prerendercontentpage。prerendercomplete需要注意的是,在master中没有PreInit事件。
4.如果ContentPage继承BasePage,每个事件的执行顺序将变成:
BasePage。PreInitContentPage . preinitmaster . initbasepage . initcontentpage . initbasepage . initcompletetecontentpage . initcompletetebasepage . preloadcontentpage . preloadbasepage .LoadContentPage . LoadMaster . LoadBasePage . LoadCompleteContentPage . LoadCompleteBasePage . prerenderContentPage . prerenderMaster . prerenderBasePag . e . prerendercompleteContent Page。prerendercomplete只需要记住:先加载继承的页面,然后再加载自身,如果继承的页面有继承,则先加载继承页面的继承。
事件处理程序名称出现时间Page_Init在Web窗体的视图状态下加载并初始化服务器控件。这是表单生命周期的第一步:Page_Load在Page对象上加载服务器控件。因为此时可以使用视图状态信息,所以可以使用代码来更改页面上的空间设置或显示文本。页面预渲染应用程序将渲染页面卸载
页面从内存中卸载
页面错误
出现未处理的异常
Page_AbortTransaction
交易被终止
Page _ CommitTransaction
交易被接受
Page_DataBinding
将服务器空间和数据源绑定一起加载到页面上
页面_已处理
页面对象从内存中释放。这是页面对象生命周期中的最后一个事件
初始化、加载初始化、加载、预渲染事件的执行顺序:
1)控制初始化事件
2)控件所在页面的初始化事件
3)控件所在页面的加载事件
4)控制负载事件
5)控件所在页面的PreRender事件
6)控制事件的先决条件
一些个人研究经验:(以下两点可以通过自建页面和重写相关事件来验证)
1.Init事件从最内部的控件(如用户控件)引发到最外部的控件(页),而Load和PreRender等其他事件从最外部的控件引发到最内部的控件。
2.根据控件在页面上的位置,控件之间相同事件的执行顺序是从左到右和从上到下。
注意:
1.请记住,用户控件也被视为页面中的控件;
2.将用户控件视为一个单独的特殊页面,它和它包含的控件也遵循相同的规则。
3.如果客户端程序(如JavaScript)中使用了客户端主体对象的onload事件,请注意这个客户端事件是最后执行的,也就是说,在服务器端的所有事件都执行完之后。
在主控件和用户定义控件4中没有预监控和完整事件。Master本身是一个用户控件,它继承模板控件,模板控件继承控件。我们来看看Control中可重写的事件(部分截图),或者看看官方文档:https://参考Source.microsoft.com/#system.web/ui/control.cs, 87 dbac 93d 9749 fa 2。
以下是微软官方文章:
https://msdn.microsoft.com/zh-cn/library/aa479007.aspx
仔细看看这篇文章。非常好。
摘要
以上就是本文的全部内容。希望本文的内容能给你的学习或工作带来一些帮助。有问题可以留言交流。谢谢你的支持
版权声明:Asp.NET页面事件加载顺序的详细说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。