当一个用户请求到达服务器时,服务器通过一系列步骤来完成用户的请求处理过程。以下就是web窗体的六个处理过程:
1. 页面框架初始化:当用户请求到来时,页面框架首先进行初始化,在这个过程中,生成了aspx页面定义的控件。另外,如果是回送请求,也就是说不是首次被加载,那么在这个过程还将反序列化视图状态信息,并运用到对应的控件中。在这个过程Page_Init()事件将被执行。
2.用户代码初始化:Page_Load()函数将被执行完成一些初始化操作,无论是首次访问还是回送请求,该函数都被执行。另外,可以通过IsPostBack属性判断是否是回送请求。
3.验证过程:验证控件完成对用户控件的验证。该过程在页面加载后但是用户事件触发前完成。
4.事件处理:用户事件触发。
5.数据绑定:如果页面上使用了数据源控件,那么将完成对这些数据源控件的数据绑定操作。
6.数据清除:Page_Unload()将被执行,请求完成,清除数据。
以下是一个验证例子:
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text += "Page的Load处理事件<br/>";
if (Page.IsPostBack)
{
Label1.Text+="这是回送请求<br/>";
}
}
protected void Page_Init(object sender,EventArgs e)
{
Label1.Text+= "Page的Init处理事件<br/>";
}
protected void Page_PreRender(object sender,EventArgs e)
{
Label1.Text += "Page的PreRender处理事件<br/>";
}
protected void Page_Unload(object sender,EventArgs e)
{
Label1.Text += "Page的UnLoad处理事件<br/>";
}
protected void Button1_Click(object sender,EventArgs e)
{
Label1.Text += "Button.Click处理事件<br/>";
}