(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. hdoj 1824 Let's go home(2-SAT)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1824 思路分析:该问题为2-SAT问题:需要注意逻辑推理的等价性: (1)题目第一个条件:每一个队或者 ...

  2. 一个异或加密方案--C语言实现

    核心代码: char encrypt( char f , char c) { return f^c; } int OutEncrypt( char *FilePath, char *SecretWor ...

  3. echarts 应用数个样例

    应用一:环形图和饼图嵌套 先说明一下内部文件分布: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGV4dGJveQ==/font/5a6L5L2T/fo ...

  4. Java程序猿JavaScript学习笔记(2——复制和继承财产)

    计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...

  5. Spark学习体系

    底理解Spark,能够分为以下几个层次. 1 Spark基础篇 1.1 Spark生态和安装部署 在安装过程中,理解其基本操作步骤. 安装部署 Spark安装简单介绍 Spark的源代码编译 Spar ...

  6. 修改页面中所有TextBox控件的样式--CSS

    1.HTML <div> TextBox<br /> <input type="text" name="name" value=& ...

  7. Oracle包Package调用Package

    Package左侧文件: create or replace package CALL_DETAILS is strdatarange varchar2(1) := '1'; numrow_num n ...

  8. java反射机制入门02

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

  9. BZOJ 2190 仪仗队

           这道题的关键就是找到所有的点中,x与y互质的点,第一反应必定是暴搜,稍想一下可以从中分开求一半,但范围仍然限定了这条路行不通,仔细画了几张图后发现下图中从第三行起第k行可连fai k个, ...

  10. sdl2-2.04 读取位图并显示

    // sdl2_win32.cpp : Defines the entry point for the console application.//// 假定SDL的库文件和头文件和VC的工程文件在一 ...