(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. cocos2dx中的精灵CCSprite

    什么是精灵(CCSprite),在官网文档中是这么定义的 Sprites A cocos2d CCSprite is similar to sprites you find in other game ...

  2. 2014第35周三jquery最近用到的内容总结

    1.文档加载后执行: $(document).ready(function(){//onload();}); 或$(function(){//onload();}) 2. 选择器使用: $(" ...

  3. HDU 1090 A+B for Input-Output Practice (II)

    #include <cstdio> int main() { int n,a,b; scanf("%d",&n); ; i<=n; i++) { scan ...

  4. JavaBean讲解 规范

    一:JavaBean定义 JavaBean是一种可重复使用.跨平台的软件组件.JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean,例如NetBean中 ...

  5. Android 中文API (68) —— BluetoothClass.Service

    前言 本章内容是 android.bluetooth.BluetoothClass.Service,为Android蓝牙部分的章节翻译,版本为 Android 2.3   r1,翻译来自中山大学的&q ...

  6. [置顶] 局部加权回归、最小二乘的概率解释、逻辑斯蒂回归、感知器算法——斯坦福ML公开课笔记3

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9113681 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少 ...

  7. linux c: 静态库和动态库的生成和使用

    场景: main函数需要两个接口,一个求和函数,一个打印函数. int sum(int i, int j); 求两个int数字的和. void show(int i, char* name); 打印i ...

  8. C语言循环小技巧

    写代码,有两类追求,一种是追求实用(Coder),一种是追求代码艺术(Artist) 我是那种追实用追腻了,偶然追一下艺术(就是偶然和艺术有一腿)的那种Coder 很多人,已经习惯了for(i=0; ...

  9. 转:requirejs2.0新特性介绍

    就在前天晚上RequireJS发布了一个大版本,直接从version1.0.8升级到了2.0.随后的几小时James Burke又迅速的将版本调整为2.0.1,当然其配套的打包压缩工具r.js也同时升 ...

  10. Test class should have exactly one public zero-argument constructor

    java.lang.Exception: Test class should have exactly one public zero-argument constructor at org.juni ...