页面生命周期 .
2012-12-12 14:46
363 查看
Asp.net确定对一个用户发起的页面请求是被解析和编译还是发送提供的网页缓存。在生命周期之前,变化非常多。在这之后,检查这个请求是否是正常的请求,在此之后,还要求检查的是一个正常的要求,回发,跨页回发或回调。
该页面构造函数创建的控件树,在HTTP运行时实例化页面类来处理请求。
PreInit
这一事件是在页面生命周期的开始。每个页面控件初始化和根据aspx代码设置属性。
可以改变或设置母版页或者主题
创建或重新创建动态控件。
读取或设置配置属性值。
Init
首先, Page的Init事件发生,然后页面上每个控件Init事件发生。在此阶段,Viewstate 信息是不可用的。
控件已经被初始化
如果有的话,主题皮肤被应用。
初始化控件属性
InitComplete
此事件是用来处理所有要求初始化都完成的任务。
PreLoad
此事件发生在执行任何处理之前,在Load之前发生。使用这个事件,如果您在Load事件之前,需要在网页或者控件上执行相关的处理,页面实例引发此事件之前,它为页面和所有的控件加载view state 。然后处理回发数据的任何附带要求的实例。
Load :
在控件中设置属性, 建立数据库的连接
Control Events :
有一些控件的特定的事件,例如: Button Click, DropDownIndexChanged 等等。
Load Complete
这些事件用来处理一些在Load事件处理完成之后需要处理的任务。
PreRender
在这种事件中,页面可以确保所有子控件都被创建。页面为所有的子控件调用EnsureChildControls也包括自己。每一个控件的数据源/绑定属性设置为它的绑定方法调用。
SaveStateComplete
这个事件发生在页面和所有的控件的编码和保存viewstate之后。
Render
每一个asp.net控件都有渲染方法,页面的实例调用此方法并输出控件的标记
Unload
Unload事件用来执行清除任务,像关闭数据库连接,关闭打开的文件,完成日志,以及一些其他的任务。该事件首先针对每个控件发生,继而针对该页发生。
例子:
该页面构造函数创建的控件树,在HTTP运行时实例化页面类来处理请求。
PreInit
这一事件是在页面生命周期的开始。每个页面控件初始化和根据aspx代码设置属性。
可以改变或设置母版页或者主题
创建或重新创建动态控件。
读取或设置配置属性值。
Init
首先, Page的Init事件发生,然后页面上每个控件Init事件发生。在此阶段,Viewstate 信息是不可用的。
控件已经被初始化
如果有的话,主题皮肤被应用。
初始化控件属性
InitComplete
此事件是用来处理所有要求初始化都完成的任务。
PreLoad
此事件发生在执行任何处理之前,在Load之前发生。使用这个事件,如果您在Load事件之前,需要在网页或者控件上执行相关的处理,页面实例引发此事件之前,它为页面和所有的控件加载view state 。然后处理回发数据的任何附带要求的实例。
Load :
在控件中设置属性, 建立数据库的连接
Control Events :
有一些控件的特定的事件,例如: Button Click, DropDownIndexChanged 等等。
Load Complete
这些事件用来处理一些在Load事件处理完成之后需要处理的任务。
PreRender
在这种事件中,页面可以确保所有子控件都被创建。页面为所有的子控件调用EnsureChildControls也包括自己。每一个控件的数据源/绑定属性设置为它的绑定方法调用。
SaveStateComplete
这个事件发生在页面和所有的控件的编码和保存viewstate之后。
Render
每一个asp.net控件都有渲染方法,页面的实例调用此方法并输出控件的标记
Unload
Unload事件用来执行清除任务,像关闭数据库连接,关闭打开的文件,完成日志,以及一些其他的任务。该事件首先针对每个控件发生,继而针对该页发生。
例子:
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class _Default : System.Web.UI.Page { protected void Page_PreInit(object sender, EventArgs e) { Response.Write("MasterPage_PreInit<br/>"); } protected void Page_Init(object sender, EventArgs e) { Response.Write("MasterPage_Init<br/>"); } protected void Page_InitComplete(object sender, EventArgs e) { Response.Write("MasterPage_InitComplete<br/>"); } protected void Page_PreLoad(object sender, EventArgs e) { Response.Write("MasterPage_PreLoad<br/>"); } protected void Page_Load(object sender, EventArgs e) { Response.Write("MasterPage_Load<br/>"); } protected void Page_LoadComplete(object sender, EventArgs e) { Response.Write("MasterPage_LoadComplete<br/>"); } protected void Page_PreRender(object sender, EventArgs e) { Response.Write("MasterPage_PreRender<br/>"); } protected void Page_PreRenderComplete(object sender, EventArgs e) { Response.Write("MasterPage_PreRenderComplete<br/>"); } protected void Page_SaveStateComplete(object sender, EventArgs e) { Response.Write("MasterPage_SaveStateComplete<br/>"); } protected void Page_Unload(object sender, EventArgs e) { //Response.Write("MasterPage_Unload<br/>"); int i = 0; i++;//这行代码是用来设置断点的,这里不能用Response.Write } protected void Button1_Click(object sender, EventArgs e) { Response.Write("Button事件触发!<br/>"); } }
相关文章推荐
- ASP.NET页面生命周期概述(转载)
- ASP.NET页面生命周期描述
- .net .用户控件和页面的加载顺序、生命周期
- ASP.NET页面生命周期总结(1)
- asp.net页面生命周期
- 在ASP.NET 2.0中,一个ASP.NET页面的生命周期主要为:
- asp.net页面生命周期 各时期事件
- ASP.NET最常用的页面生命周期事件
- aspx 页面生命周期
- ASP.NET页面生命周期
- Asp.net Web Form开发的页面生命周期模型
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
- aspx页面的生命周期
- asp.net页面生命周期之回发的处理
- 黑马程序员_页面生命周期
- 该不该使用数据源控件——数据源控件与页面生命周期
- ASP.NET页面事件(页面生命周期)
- 页面生命周期
- AspNet2.0页面生命周期
- 页面生命周期直观代码