现在的位置: 首页 > 综合 > 正文

页面生命周期阶段以及相关事件

2013年10月01日 ⁄ 综合 ⁄ 共 1199字 ⁄ 字号 评论关闭

页面生命周期主要分为以下几个阶段,在每个阶段都会执行一些特定的事件来完成指定任务,阶段如下:

1. 生命周期开始:在开始阶段,将设置页的属性,如request,response。在此阶段,还将确定请求是回发请求还是新请求。并设置                           IsPostBack属性

2. 页初始化    :在页初始化期间,可以使用控件,并已经设置控件ID,如果是回发请求,则此时回发数据尚未加载,控件的属性也尚未还原                  为视图状态中的值

3. 加载阶段    :在此阶段,将使用从视图状态恢复的信息来加载控件属性。

4. 验证        :在验证期间,设置各个控件和页的isValid属性。

5. 回发事件处理:如果请求是回发请求,那么在这个阶段将调用所有事件处理程序。(我理解的是引起回发的事件,比如click,textchange   等)

6. 呈现        :在呈现之前,会对该页和所有控件保存视图状态,在呈现阶段中,页会对每个控件调用render方法,用于将控件的输出加                  入页的response的outPutStream中

7. 卸载        :完全呈现并将页发送给客户端准备丢弃该页后,将调用卸载,此时将卸载页属性response和request,并执行清理。

 

生命周期的各个事件:

1. preInit :使用该事件执行下列操作
             (1) 检查IsPostBack属性来确定是不是第一次处理该页
             (2) 如果请求是回发请求,则控件的值尚未从视图状态中还原,如果在此阶段设置控件属性,则其值可能在下一事件中被重写。

2. Init    :在所有控件都已经初始化且已应用所有外观设置后引发,使用该事件来读取或初始化控件属性

3. InitComlete :由page对象引发,使用该事件来处理要求先完成所有初始化工作的任务。

4. PreLoad     :在Page引发该事件后,他会为自身和所有控件加载视图状态,然后处理request所包括的任何回发数据

5. Load        :Page 在 Page 上调用 OnLoad 事件方法,然后以递归方式对每个子控件执行相同操作,如此循环往复,直到加载完本页和                 所有控件为止。

6. 控件事件    :如click,textchange等

7. LoadComplete:对需要加载页上的所有其他控件的任务使用该事件。

8. PreRender   :使用该事件对页或其控件的内容进行最后更改

9. SaveStateComplete :在该事件发生前,已针对页和所有控件保存了viewstate,将忽略此时对页和控件做的任何修改 

10. Render     :呈现给客户端

11. UnLoad     : 执行清理工作,如关闭数据库链接等

 

 

 

差不多全是摘自MSDN

抱歉!评论已关闭.