Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET深入浅出系列2-页面生命周期详解

ASP.NET深入浅出系列2-页面生命周期详解2012-01-18上个系列中介绍了页面生命周期的整体流程,可能有些读者还想更进一步了解整个生命周期的细节,限于篇幅我不可能讲到所有细节,也没必要,这里仅举几个例子,大家可以通过这几个例子学习一下页面生命周期的研究方式。

Control类中有如下事件

// 当服务器控件绑定到数据源时发生。

public event EventHandler DataBinding;

// 当从内存释放服务器控件时发生,这是请求 ASP.NET 页时服务器控件生存期的最后阶段。

public event EventHandler Disposed;

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

public event EventHandler Init;

// 当服务器控件加载到 System.Web.UI.Page 对象中时发生。

public event EventHandler Load;

// 在加载 System.Web.UI.Control 对象之后、呈现之前发生。

public event EventHandler PreRender;

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

public event EventHandler Unload;

因为每个Page和绝大多书控件都是继承于这个Control类,所以他们都可以注册这些事件,如果我们提供了相应名字的方法,ASP.NET在编译时会帮我们注册相应的方法到事件中,比如我们如果在页面中写了如下方法

protected void Page_Init(object sender, EventArgs e)  {    Trace.Write("Page_Init");  }
那ASP.NET在编译时会将这个方法注册到Control类的Init事件中,也就是当页面初始化的时候就会调用这个Page_Init方法。我们右键Page类“选转到定义”菜单可以看到Page的定义,这个定义中还有些事件

// 在页初始化完成时发生。

public event EventHandler InitComplete;

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

public event EventHandler LoadComplete;

// 在页初始化开始时发生。

public event EventHandler PreInit;

// 在页 System.Web.UI.Control.Load 事件之前发生。

public event EventHandler PreLoad;