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;