服务器控件的生命周期
2.特别注意控件状态的变化
服务器控件生命周期所要经历的11个阶段:
1)初始化 OnInit()
控件实例化,并取默认值,初始化的状态
跟踪视图状态 TrackViewState()
2)加载视图状态 LoadViewState()
检查控件是否存在,并根据ViewState恢复到改变前的状态
3)加载回发数据 LoadPostData()
(控件必须实现System.Web.UI.IPostBackDataHandler && 参与了回传数据处理)
检查客户端发回的窗体数据,控件更新到客户端的状态,决定是否引发更改通知
4)加载 OnLoad()
提供给开发人员,编写逻辑
5)更改通知 RaisePostBackChangedEvent()
(控件必须实现System.Web.UI.IPostBackDataHandler&& LoadPostData()返回true)
提供给开发人员,编写逻辑
6)处理回发事件 RaisePostBackEvent()
(必须实现System.Web.UI.IPostBackEventHandler)
提供给开发人员,“映射客户端事件”,触发对应的控件事件(自定义)
7)预呈现 OnPreRender()
提供给开发人员,编写逻辑
8)保存视图状态 SaveViewState()
维持状态
9)呈现 Render()
向HTTP输出流中写入标记文本
10)处置 Dispose()
释放对昂贵资源的引用
11)卸载 OnUnLoad()
销毁控件
每次请求 ASP.NET 页时,服务器就会加载一个 ASP.NET 页,并在请求完成时卸载该页。页及其包含的服务器控件负责执行请求并将 HTML 呈现给客户端。虽然客户端和服务器之间的通信是无状态的和断续的,但是必须使客户感觉到这是一个连续执行的过程