ASP.NET 的页面处理生命周期
来源:互联网 发布:淘宝批量发布本店产品 编辑:程序博客网 时间:2024/05/19 03:42
asp.net的页面生命周期
:
一、页面建立阶段
1*页面的PreInit事件发生,在这时实例化控件,建立控件树,只有页面有这个事件。
2*每个控件的Init事件发生,分配iD,启用每个控件视图状态标志(或打开或关闭)。页面的Init事件随后发生,关联母板和主题,启用页面视图状态标志(或打开或关闭)。
3*InitComplete--页面独有
4*(根据PreInit事件阶段产生的IsPostBack)恢复视图状态,每个控件都有机会恢复视图,没有与这个阶段明确的事件关联。
可以重写LoadViewState进行定制。
5*处理投递值。投递值被封装在内部系统所使用的数据字典中,扫描控件把投递ID与控件ID进行匹配,若匹配且
控件实现了IPostBackDataHandler接口,则页处理程序将调用控件的接口方法LoadPostData(),若返回True,则状态已经被更新,
则该控件将被添加到一个不同的集合ChangeColl(我的命名)中,以便以后引起关注(在load事件后),比如重写集合ChangeColl中控件的ViewState状态值。
若投递值找不到匹配控件,则留下它放在一个TempColl(我的命名)集合中,留待以后再试(为动态控件的产生提供了可能性,
因为动态创建的控件在创建以后,在回发的时候,它会晚于投递值再次产生)。
6*preLoad事件,仅对页面有效。
7*load事件,页面先触发,然后控件递归触发。在此时用户可以放心的访问控件的视图和属性了。可以在此执行用户的业务逻辑的初始化。
二、处理回发阶段
1*检测控件状态的变化。
根据前面的LoadPostData的返回值,来决定是否调用另一个接口函数(RaisePostDataEvent()),它可以点火状态变化事件的发生。
2*执行服务器端回发事件。
若控件实现了iPostBackEventHandler接口,则若有回发动作,页面处理器会调用接口方法RaisePostBackEvent(),触发动作事件。
3*LoadComplete事件,页面独有,表示页面准备阶段结束。用户的事件处理发生在此事件之前。(这在页面渲染之前发生,这就是为什么在事件处理程序中
Response.write("dds")的显示总在Response流的最前面的原因)
三、页面结束阶段
1*PreRender事件,先为页面触发,然后为控件递归触发。
2*PreRenderComplete页面独有。
3*SaveStateComplete事件,保存视图状态。可以重写SavePageStateToPersistenceMedium() 和this.LoadPageStateFromPersistenceMedium(),来把视图状态
存到服务器或会话状态中,从而减少页面大小。
4*Render事件
5*unload事件,先控件递归后页面。
:
一、页面建立阶段
1*页面的PreInit事件发生,在这时实例化控件,建立控件树,只有页面有这个事件。
2*每个控件的Init事件发生,分配iD,启用每个控件视图状态标志(或打开或关闭)。页面的Init事件随后发生,关联母板和主题,启用页面视图状态标志(或打开或关闭)。
3*InitComplete--页面独有
4*(根据PreInit事件阶段产生的IsPostBack)恢复视图状态,每个控件都有机会恢复视图,没有与这个阶段明确的事件关联。
可以重写LoadViewState进行定制。
5*处理投递值。投递值被封装在内部系统所使用的数据字典中,扫描控件把投递ID与控件ID进行匹配,若匹配且
控件实现了IPostBackDataHandler接口,则页处理程序将调用控件的接口方法LoadPostData(),若返回True,则状态已经被更新,
则该控件将被添加到一个不同的集合ChangeColl(我的命名)中,以便以后引起关注(在load事件后),比如重写集合ChangeColl中控件的ViewState状态值。
若投递值找不到匹配控件,则留下它放在一个TempColl(我的命名)集合中,留待以后再试(为动态控件的产生提供了可能性,
因为动态创建的控件在创建以后,在回发的时候,它会晚于投递值再次产生)。
6*preLoad事件,仅对页面有效。
7*load事件,页面先触发,然后控件递归触发。在此时用户可以放心的访问控件的视图和属性了。可以在此执行用户的业务逻辑的初始化。
二、处理回发阶段
1*检测控件状态的变化。
根据前面的LoadPostData的返回值,来决定是否调用另一个接口函数(RaisePostDataEvent()),它可以点火状态变化事件的发生。
2*执行服务器端回发事件。
若控件实现了iPostBackEventHandler接口,则若有回发动作,页面处理器会调用接口方法RaisePostBackEvent(),触发动作事件。
3*LoadComplete事件,页面独有,表示页面准备阶段结束。用户的事件处理发生在此事件之前。(这在页面渲染之前发生,这就是为什么在事件处理程序中
Response.write("dds")的显示总在Response流的最前面的原因)
三、页面结束阶段
1*PreRender事件,先为页面触发,然后为控件递归触发。
2*PreRenderComplete页面独有。
3*SaveStateComplete事件,保存视图状态。可以重写SavePageStateToPersistenceMedium() 和this.LoadPageStateFromPersistenceMedium(),来把视图状态
存到服务器或会话状态中,从而减少页面大小。
4*Render事件
5*unload事件,先控件递归后页面。
- ASP.NET 的页面处理生命周期
- asp.net页面生命周期之回发的处理
- Asp.net页面的生命周期
- Asp.net页面的生命周期
- Asp.net页面的生命周期
- Asp.net页面的生命周期
- ASP.NET页面的生命周期
- Asp.net页面的生命周期
- Asp.net页面的生命周期
- ASP.NET页面的生命周期
- Asp.net页面的生命周期
- ASP.NET页面的生命周期
- Asp.net页面的生命周期
- asp.net页面的生命周期
- ASP.NET 页面的生命周期
- ASP.NET页面的生命周期
- ASP.NET页面的生命周期
- Asp.net页面的生命周期
- 五一快乐
- 纪念2007 年的4月
- Linux操作系统下SAMBA服务的搭建过程
- ==与equals的区别
- 数据源与数据池
- ASP.NET 的页面处理生命周期
- JSP取当前日期
- 花非花,雾非雾,人生百度;心虽苦,意无助,随风释触;
- delegate 的使用
- sql 经典语句
- 鲍尔默:Vista再安全 也需要第三方杀毒软件
- in 和 Exists的用法区别
- Cactus实例讲解
- AMD酝酿史上规模最大重组 称一季度巨亏早有所料