控件执行生命周期(From MSDN)

作者:袖梨 2022-07-02
每次请求 ASP.NET 页时,服务器就会加载一个 ASP.NET 页,并在请求完成时卸载该页。页及其包含的服务器控件负责执行请求并将 HTML 呈现给客户端。虽然客户端和服务器之间的通信是无状态的和断续的,但是必须使客户感觉到这是一个连续执行的过程。
这种连续性假象是由 ASP.NET 页框架、页及其控件实现的。回发后,控件的行为必须看起来是从上次 Web 请求结束的地方开始的。虽然 ASP.NET 页框架可使执行状态管理相对容易一些,但是为了获得连续性效果,控件开发人员必须知道控件的执行顺序。控件开发人员需要了解:在控件生命周期的各个阶段,控件可使用哪些信息、保持哪些数据、控件呈现时处于哪种状态。例如,在填充页上的控件树之前控件不能调用其父级。
下表提供了控件生命周期中各阶段的高级概述。有关详细信息,请点击表中的链接。
阶段 控件需要执行的操作 要重写的方法或事件
初始化 初始化在传入 Web 请求生命周期内所需的设置。请参见处理继承的事件。
 Init 事件(OnInit 方法)
加载视图状态 在此阶段结束时,就会自动填充控件的 ViewState 属性,详见维护控件中的状态中的介绍。控件可以重写 LoadViewState 方法的默认实现,以自定义状态还原。
 LoadViewState 方法
处理回发数据 处理传入窗体数据,并相应地更新属性。请参见处理回发数据。
注意 只有处理回发数据的控件参与此阶段。
 LoadPostData 方法
(如果已实现 IPostBackDataHandler)

加载 执行所有请求共有的操作,如设置数据库查询。此时,树中的服务器控件已创建并初始化、状态已还原并且窗体控件反映了客户端的数据。请参见处理继承的事件。
 Load 事件
(OnLoad 方法)

发送回发更改通知 引发更改事件以响应当前和以前回发之间的状态更改。请参见处理回发数据。
注意 只有引发回发更改事件的控件参与此阶段。
 RaisePostDataChangedEvent 方法

相关文章

精彩推荐