ASP.NET控件的执行生命周期
ASP.NET控件的执行生命周期如表6-1所示:
阶段
|
控件需要执行的操作
|
要重写的方法或事件
|
初始化
|
初始化在传入 Web 请求生命周期内所需的设置。
|
Init 事件(OnInit 方法)
|
加载视图状态
|
在此阶段结束时,就会自动填充控件的 ViewState 属性,控件可以重写LoadViewState 方法的默认实现,以自定义状态还原。
|
LoadViewState 方法
|
处理回发数据
|
处理传入窗体数据,并相应地更新属性。 注意:只有处理回发数据的控件参与此阶段。
|
LoadPostData 方法(如果已实现IPostBackDataHandler)
|
加载
|
执行所有请求共有的操作,如设置数据库查询。此时,树中的服务器控件已创建并初始化、状态已还原并且窗体控件反映了客户端的数据。
|
Load 事件(OnLoad 方法)
|
发送回发更改通知
|
引发更改事件以响应当前和以前回发之间的状态更改。 注意:只有引发回发更改事件的控件参与此阶段。
|
RaisePostDataChangedEvent方法(如果已实现IPostBackDataHandler)
|
处理回发事件
|
处理引起回发的客户端事件,并在服务器上引发相应的事件。 注意:只有处理回发事件的控件参与此阶段。
|
RaisePostBackEvent 方法(如果已实现IPostBackEventHandler)
|
预呈现
|
在呈现输出之前执行任何更新。可以保存在预呈现阶段对控件状态所做的更改,而在呈现阶段所对的更改则会丢失。
|
PreRender 事件(OnPreRender方法)
|
保存状态
|
在此阶段后,自动将控件的ViewState 属性保持到字符串对象中。此字符串对象被发送到客户端并作为隐藏变量发送回来。为了提高效率,控件可以重写SaveViewState 方法以修改ViewState 属性。
|
SaveViewState 方法
|
呈现
|
生成呈现给客户端的输出。
|
Render 方法
|
处置
|
执行销毁控件前的所有最终清理操作。在此阶段必须释放对昂贵资源的引用,如数据库链接。
|
Dispose 方法
|
卸载
|
执行销毁控件前的所有最终清理操作。控件作者通常在 Dispose 中执行清除,而不处理此事件。
|
UnLoad 事件(On UnLoad 方法)
|
soruce : http://blog.csdn.net/zjwtnt/archive/2009/01/15/3791501.aspx
or http://blog.csdn.net/grgufo/archive/2008/02/20/2110123.aspx
ASP.NET 页生命周期概述 http://msdn.microsoft.com/zh-cn/library/ms178472(VS.80).aspx
从页面的生命周期事件到页面基类(PageBase类)的编写
http://www.cnblogs.com/jiahaipeng/archive/2008/10/25/1319238.html#1583855
ASP.NET Application and Page Life Cycle
http://www./KB/aspnet/ASPDOTNETPageLifecycle.aspx
ASP.NET Internals: Viewstate and Page Life Cycle
http://www./KB/aspnet/aspnetviewstatepagecycle.aspx
The ASP.NET Page Lifecycle – A Basic Approach
从简单的JavaScript类到ASP.NET AJAX控件
http://www./KB/aspnet/ASPNET_Page_Lifecycle.aspx
|