本文概述
- 页面生命周期阶段
- ASP.NET生命周期事件
页面生命周期阶段下表包含ASP.NET网页的生命周期阶段。
阶段 | 描述 |
---|---|
Page request | 此阶段发生在生命周期开始之前。当用户请求页面时, ASP.NET解析并编译该页面。 |
Start | 在此阶段, 将设置诸如请求和响应之类的页面属性。它还确定请求类型。 |
Initialization | 在此阶段, 将设置每个控件的UniqueID属性。将母版页应用于该页面。 |
Load | 在此阶段, 如果页面请求被回发, 则控件属性将加载信息。 |
Postback event handling | 在此阶段, 如果页面请求为回发, 则调用事件处理程序。之后, 将调用所有验证程序控件的Validate方法。 |
Rendering | 在渲染之前, 将保存页面和所有控件的视图状态。在呈现阶段, 页面为每个控件调用Render方法, 提供一个文本编写器, 该文本编写器将其输出写入页面的Response属性的OutputStream对象。 |
Unload | 在此阶段, 请求的页面已完全呈现并准备终止。在此阶段, 将卸载所有属性并执行清理。 |
ASP.NET生命周期事件
页面事件 | 典型用途 |
---|---|
PreInit | 在开始阶段完成之后且在初始化阶段之前引发此事件。 |
Init | 初始化所有控件后, 将发生此事件。我们可以使用此事件来读取或初始化控件属性。 |
InitComplete | 此事件发生在页面初始化阶段的末尾。我们可以使用此事件进行更改, 以查看我们要确保在下一次回发之后仍然存在的状态。 |
PreLoad | 在将回发数据加载到控件之前, 将发生此事件。 |
Load | 第一次在页面上引发此事件, 然后对所有子控件递归地引发此事件。 |
Control events | 此事件用于处理特定的控件事件, 例如Button控件的Click事件。 |
LoadComplete | 此事件发生在事件处理阶段的结尾。我们可以将此事件用于需要加载页面上所有其他控件的任务。 |
PreRender | 页面对象创建了呈现页面所需的所有控件之后, 就会发生此事件。 |
PreRenderComplete | 在设置了DataSourceID属性的每个数据绑定控件调用其DataBind方法之后, 将发生此事件。 |
SaveStateComplete | 在为页面和所有控件保存了视图状态和控件状态之后, 将引发此事件。 |
Render | 这不是一个事件。而是在此处理阶段, Page对象在每个控件上调用此方法。 |
Unload | 为每个控件然后为页面引发此事件。 |