asp.net 页面生命周期事件详细

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

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

(3)初始化页面:页面初始化期间,能够使用页中的控件,并将设置每一个控件的UniqueID属性。若是当前请求是回发请求,则回发数据还没有加载,而且控件属性值还没有还原为视图状态中的值。服务器

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

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

(6)回发事件处理:若是请求是回发请求,则将调用全部事件处理程序。htm

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

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

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

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

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

事    件

说    明

Init

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

InitComplete

在页初始化完成时发生

PreInit

在页初始化开始时发生

Load

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

LoadComplete

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

PreLoad

在页Load事件以前发生

PreRender

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

PreRenderComplete

在呈现页内容以前发生

UnLoad

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

Disposed

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

 

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class _Default : System.Web.UI.Page
{
    protected int i = 1;

    protected void Page_PreInit(object sender, EventArgs e)
    {
        Response.Write(i + ".PreInit:当页面初始化开始时发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_Init(object sender, EventArgs e)
    {
        Response.Write(i + ".Init:当服务器空间初始化时发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_InitComplete(object sender, EventArgs e)
    {
        Response.Write(i + ".InitComplete:当页初始化完成时发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_PreLoad(object sender, EventArgs e)
    {
        Response.Write(i + ".PreLoad:当页load事件前发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(i + ".Load:当服务器控件加载到Page对象中时发生(加载页面时)");
        i++;
        Response.Write("<br>");
     
      //在Load和LoadComplete之间会执行控件事件.
      //如 Button 控件的 Click 事件或 TextBox 控件的 TextChanged 事件。
    }

    protected void Page_LoadComplete(object sender, EventArgs e)
    {
        Response.Write(i + ".LoadComplete:当页面生命周期的加载阶段结束时发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_PreRender(object sender, EventArgs e)
    {
        Response.Write(i + ".PreRender:当页加载控件以后,呈现以前发生,使用该事件对页或其控件的内容进行最后更改(预呈现)");
        i++;
        Response.Write("<br>");
    }


    protected void Page_PreRenderComplete(object sender, EventArgs e)
    {
        Response.Write(i + ".PreRenderComplete:呈现内容前发生.(预呈现完成)");
        i++;
        Response.Write("<br>");
    }




    protected void Page_SaveStateComplete(object sender, EventArgs e)
    {
        /*网页上控件的状态信息是在 PreRenderComplete 事件后保存的。
       在SaveStateComplete事件以前用Trace查看页时其实在该事件前还有
       一个SaveState事件,只是这里没法演示.
       
       注意:SaveStateComplete 事件在将页和页上控件的视图状态和控件状态保存到持久性介质以后引起。
       这是在页被呈现到请求浏览器以前引起的最后一个事件。*/

        Response.Write(i + ".SaveStateComplete:在页已完成对页和页上控件的全部视图状态和控件状态信息的保存后发生.");
        i++;
        Response.Write("<br>");




        /*最后一部操做
        呈现:Render:
        它不是事件;在处理的这个阶段,Page 对象会在每一个控件上调用此方法Render()。
        全部 ASP.NET Web 服务器控件都有一个用于写出发送给浏览器的控件标记的 Render 方法。*/


        /*当你关闭页面的时候就会引起UnLoad(当服务器控件从内存中卸载时发生)
         和Disposed两事件(当从内存释放服务器控件时发生,这是服务器控件生存期的最后阶段)
        
        首先加载UnLoad事件:卸载页面:彻底呈现页、将页发送至客户端并准备丢弃时,
        将调用卸载。此时,将卸载页属性(如Response和Request)并执行清理.
         
        最后加载Disposed事件,释放资源,生命周期结束.... 
        */
    }

}

 

 结果显示:

参考:

http://jhxk.iteye.com/blog/359762

http://www.poluoluo.com/jzxy/201304/202947.html

相关文章
相关标签/搜索