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