(1)请求页面:页请求发生在页生命周期开始之前。

(2)开始:在开始阶段,将设置页属性,如Request和Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性。

(3)初始化页面:页面初始化期间,可以使用页中的控件,并将设置每个控件的UniqueID属性。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。

(4)加载页面:加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。

(5)验证:在验证期间,将调用所有验证程序控件的Validate方法,此方法将设置各个验证程序控件和页的IsValid属性。

(6)回发事件处理:如果请求是回发请求,则将调用所有事件处理程序。

(7)呈现页面:在页面呈现期间,视图状态将被保存到页面,然后页面将调用每个控件,以将其呈现的输出提供给页的Response属性的OutputStream。

(8)卸载页面:完全呈现页、将页发送至客户端并准备丢弃时,将调用卸载。此时,将卸载页属性(如Response和Request)并执行清理。

与上面的生命周期相对应的Page类的生命周期事件如图所示。

Page类生命周期中各个事件的说明如表所示。

Page类生命周期中各个事件的说明如表所示。

事    件

说    明

Init

当服务器控件初始化时发生;初始化是控件生存期的第一步

InitComplete

在页初始化完成时发生

PreInit

在页初始化开始时发生

Load

当服务器控件加载到Page对象中时发生

LoadComplete

在页生命周期的加载阶段结束时发生

PreLoad

在页Load事件之前发生

PreRender

在页面加载控件对象之后、呈现之前发生

PreRenderComplete

在呈现页内容之前发生

UnLoad

当服务器控件从内存中卸载时发生

Disposed

当从内存释放服务器控件时发生,这是服务器控件生存期的最后阶段

 

   1  using  System;   

      2 

    using
 System.Collections;      3  using
 System.Configuration;      4  using
 System.Data;      5  using
 System.Web;      6  using
 System.Web.Security;      7  using
 System.Web.UI;      8  using
 System.Web.UI.HtmlControls;      9  using
 System.Web.UI.WebControls;     10  using
 System.Web.UI.WebControls.WebParts;     11 
    12  public
 
partial
 
class
 _Default : System.Web.UI.Page     13 
{     14 
    
protected
 
int
 i 
=
  ;     15 
    16 
    
protected
 
void
 Page_PreInit(
object
 sender, EventArgs e)     17 
    {     18 
        Response.Write(i 
+
 
"
.PreInit:当页面初始化开始时发生
"
);     19 
        i
++
;     20 
        Response.Write(
"
<br>
"
);     21 
    }     22 
    23 
    
protected
 
void
 Page_Init(
object
 sender, EventArgs e)     24 
    {     25 
        Response.Write(i 
+
 
"
.Init:当服务器空间初始化时发生
"
);     26 
        i
++
;     27 
        Response.Write(
"
<br>
"
);     28 
    }     29 
    30 
    
protected
 
void
 Page_InitComplete(
object
 sender, EventArgs e)     31 
    {     32 
        Response.Write(i 
+
 
"
.InitComplete:当页初始化完成时发生
"
);     33 
        i
++
;     34 
        Response.Write(
"
<br>
"
);     35 
    }     36 
    37 
    
protected
 
void
 Page_PreLoad(
object
 sender, EventArgs e)     38 
    {     39 
        Response.Write(i 
+
 
"
.PreLoad:当页load事件前发生
"
);     40 
        i
++
;     41 
        Response.Write(
"
<br>
"
);     42 
    }     43 
    44 
    
protected
 
void
 Page_Load(
object
 sender, EventArgs e)     45 
    {     46 
        Response.Write(i 
+
 
"
.Load:当服务器控件加载到Page对象中时发生(加载页面时)
"
);     47 
        i
++
;     48 
        Response.Write(
"
<br>
"
);     49 
          50 
      
//
在Load和LoadComplete之间会执行控件事件.     51 
      
//
如 Button 控件的 Click 事件或 TextBox 控件的 TextChanged 事件。     52      }     53 
    54 
    
protected
 
void
 Page_LoadComplete(
object
 sender, EventArgs e)     55 
    {     56 
        Response.Write(i 
+
 
"
.LoadComplete:当页面生命周期的加载阶段结束时发生
"
);     57 
        i
++
;     58 
        Response.Write(
"
<br>
"
);     59 
    }     60 
    61 
    
protected
 
void
 Page_PreRender(
object
 sender, EventArgs e)     62 
    {     63 
        Response.Write(i 
+
 
"
.PreRender:当页加载控件之后,呈现之前发生,使用该事件对页或其控件的内容进行最后更改(预呈现)
"
);     64 
        i
++
;     65 
        Response.Write(
"
<br>
"
);     66 
    }     67 
    68 
    69 
    
protected
 
void
 Page_PreRenderComplete(
object
 sender, EventArgs e)     70 
    {     71 
        Response.Write(i 
+
 
"
.PreRenderComplete:呈现内容前发生.(预呈现完成)
"
);     72 
        i
++
;     73 
        Response.Write(
"
<br>
"
);     74 
    }     75 
    76 
    77 
    78 
    79 
    
protected
 
void
 Page_SaveStateComplete(
object
 sender, EventArgs e)     80 
    {     81 
        
/*
网页上控件的状态信息是在 PreRenderComplete 事件后保存的。    82 
       在SaveStateComplete事件之前用Trace查看页时其实在该事件前还有    83 
       一个SaveState事件,只是这里无法演示.    84 
           85 
       注意:SaveStateComplete 事件在将页和页上控件的视图状态和控件状态保存到持久性介质之后引发。    86 
       这是在页被呈现到请求浏览器之前引发的最后一个事件。
*/
    87 
    88 
        Response.Write(i 
+
 
"
.SaveStateComplete:在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生.
"
);     89 
        i
++
;     90 
        Response.Write(
"
<br>
"
);     91 
    92 
    93 
    94 
    95 
        
/*
最后一部操作    96 
        呈现:Render:    97 
        它不是事件;在处理的这个阶段,Page 对象会在每个控件上调用此方法Render()。    98 
        所有 ASP.NET Web 服务器控件都有一个用于写出发送给浏览器的控件标记的 Render 方法。
*/
    99 
    
    
        
/*
当你关闭页面的时候就会引发UnLoad(当服务器控件从内存中卸载时发生)    
         和Disposed两事件(当从内存释放服务器控件时发生,这是服务器控件生存期的最后阶段)    
            
        首先加载UnLoad事件:卸载页面:完全呈现页、将页发送至客户端并准备丢弃时,    
        将调用卸载。此时,将卸载页属性(如Response和Request)并执行清理.    
             
        最后加载Disposed事件,释放资源,生命周期结束....     
        
*/
    
    }     
    
}    
    
  

 

Page的生命周期及相关事件苛的更多相关文章

  1. 3_1 wp8应用生命周期与导航事件[wp8特色开发与编程技巧]

    3_1生命周期 大家好,我是徐文康,今天我们来讨论一下应用程序的生命周期,首先打开app.xaml.cs文件我们可以看到这里有几个已经为我们写好的事件.   Launching 应用程序启动 Acti ...

  2. Page 的生命周期学习小结(翻译兼笔记)

    初始化(Initialization) 页面被请求时,第一个被执行的总是下面接着执行的是 接着是 然后是 恢复和加载(Restore and Load) 接下来的 ViewState 被取回后,接着  ...

  3. HttpModule、HttpHandler和Page的生命周期

    1.引言 2.两个处理步骤 2.1.创建ASP.NET环境 2.2.用触发的MHPM事件处理请求 3.什么事件中应该做什么 4.示例代码 5.深入ASP.NET页面事件 1.引言 这篇文章我们将试图理 ...

  4. vue02 过滤器、计算和侦听属性、vue对象的生命周期、阻止事件冒泡和刷新页面

    3. Vue对象提供的属性功能 3.1 过滤器 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 定义过滤器的方式有两种. 3.1.1 使用Vue.fil ...

  5. ASP.NET 生命周期及管道事件

    Client(发送报文:请求行+请求头+空行+请求体) <------ Http 协议 ------> Server,由 Http.sys 监听 Http 请求 -> WAS+Met ...

  6. 微信小程序page的生命周期和音频播放及监听

    一.界面的生命周期 /** * 监听页面加载, * 页面加载中 */ onLoad:function(){ var _this = this console.log('index---------on ...

  7. 关于 vue 生命周期 钩子函数 事件

    vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染->更新->渲染.卸载等一系列过程,我们称这是vue的生命周期. 通俗的将就是vue实例从创建到销毁 ...

  8. 小程序page中生命周期

    onLoad -- 页面被加载出来 onShow -- 页面显示出来后  退出后两小时进来,只会执行这个生命周期 onRady -- (逻辑层传给渲染层后才会执行)监听页面初次渲染完成 onHide ...

  9. (二)vue的生命周期及相关的运行流程

    @ 目录 1. vue的生命周期 经过一系列的初始化过程 需要设置数据监听 编译模板 将实例花在到DOM 并在数据变化时更新DOM 等 这是相应的生命周期函数 在用的时候直接写上, 其实很多人都这样, ...

随机推荐

  1. CERC 2013 Magical GCD

    题目大意如下:给定一个序列,每个序列有值xi,现给定t个数列,对于每个长n的数列,求一段[l,r]使 [r-l+1]*gcd(l,r)最大,gcd(l,r)指的是该连续区间的最大公约数. 不难想到n^ ...

  2. Effective C++ 第二版 10) 写operator delete

    条款10 写了operator new就要同时写operator delete 写operator new和operator delete是为了提高效率; default的operator new和o ...

  3. out/target/common/obj/PACKAGING/public_api.txt android.view.KeyEvent.KEYCODE_has changed value from

    编译出错: out/target/common/obj/PACKAGING/public_api.txt:22549: error 17: Field android.view.KeyEvent.KE ...

  4. http://localhost:8080/ 演出Oracle说明

    输入http://localhost:8080,可以出现tomcat主页.并且我检查过啦,jdk.tomcat及oracle中的环境变量都设置对啦,可是安装oracle之后,再输入http://loc ...

  5. 大一C语言结课设计之《简单计算器》

    /*===============================================*\ ** 设计目的:简单计算器,计算形如10*(20.2-30.6)+5.0/2的表达式值 ** 简 ...

  6. Javabean的理解

    1.Javabean是指满足指定规则的Java类.满足的规则由Sun公司提出,如x,setX,getX等规范,public无参构造函数等 2.Javabean其实也是一种规范.

  7. 浅谈JDBC(一)

    一.JDBC技术引言 1.什么是JDBC技术 提供了一套接口规范,利用java代码进行数据库操作. 2.JDBC技术的核心思想 对于程序员来说,代码访问数据库分为三个步骤:1.通过数据库的账号密码.2 ...

  8. C++的发展,特点和源程序构成

    最近一段时间在学习C++,也借了几本相关的书籍.因为之前主要用C#写程序,大概写了也有两年了吧.所以在回过头来学习C++,还是挺快的.但是我觉得光看书是不行的,要写!!因此我想把我整个学习C++的过程 ...

  9. jquery的链式操作以及事件绑定

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. iframe,modaldialog父子窗口相互通信的问题

    --- 子窗口访问父窗口的window对象 --- 打开新窗口一般有几种方法,window.open(...),window.showModalDialog(...),以及iframe中嵌套页面,另外 ...