您的位置:首页 > 其它

页面生命周期 .

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事件用来执行清除任务,像关闭数据库连接,关闭打开的文件,完成日志,以及一些其他的任务。该事件首先针对每个控件发生,继而针对该页发生。

例子:

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/>");

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: