(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. Windows Azure 即将更名

     今天我们宣布自2014 年4 月3 日起,WindowsAzure 将更名为Microsoft Azure.这一更名反映了Microsoft 的战略,并显示了Microsoft 专注于将Azur ...

  2. AOP 面向切面编程、拦截器

    AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术.它是一种新的方法论, ...

  3. kendo ui grid 汉化

    加入js引用 <link href="http://cdn.kendostatic.com/2014.2.716/styles/kendo.common.min.css" r ...

  4. Angular JS 学习笔记(二)

    1. AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面.AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定 ...

  5. java反射机制入门02

    Field对象的机制与实现 1.Field对象概述 1)Java.lang.reflect.Field类,是用于表示类中.接口中属性对象的类. 2)可以操作类中私有,以及公有等全部属性和属性的信息. ...

  6. 一个简单二叉树的C++实现(一)

    很久没有接触二叉树了,写这个当作练手,接下来会比较详细地实现二叉树的各个功能及应用. /* * BinaryTree.cpp * Author: Qiang Xiao * Time: 2015-07- ...

  7. CButtonST的用法详解【转】

    在想使用CButtonST的工程中加入BtnST.h.BtnST.cpp.BCMenu.h.BCMenu.cpp4个文件.2个类. 1. 在按钮上加入Icon,使Icon和文字同时显示 假设按钮ID为 ...

  8. Visual Studio shortcut keys

    VS2010 快捷键   Ctrl+E,D ----格式化全部代码  Ctrl+E,F ----格式化选中的代码  CTRL + SHIFT + B生成解决方案  CTRL + F7 生成编译  CT ...

  9. WebHdfs

    https://github.com/ihrwein/webhdfs https://tiborbenke.blogs.balabit.com/2013/11/the-syslog-ng-in-the ...

  10. 转: c++继承中的内存布局

    英文原文: http://www.openrce.org/articles/files/jangrayhood.pdf 翻译: http://blog.csdn.net/jiangyi711/arti ...