前言:本章要談頁面生命周期了,過程挺多的,但是一點都不難。不信可以看看。我盡量的講的平實 一些,而且理解頁面的生命周期對喜歡開發自定義控件和組件的朋友是很有幫助的。
頁面生命周期,也就是處理一個頁面請求的過程。我們之前就說過了的,不同文件的由不同的處理程 序來處理。而且處理程序都是實現了IHttpHandler接口。這個接口中有兩個方法,其中真正用來處理請求 的就是ProcessRequest方法。
所以當我們請求一個頁面的時候,我們的頁面,假如我們請求的是default.aspx這個頁面是繼承自 Page,大家應該知道在程序運行的時候default.aspx以及它的.cs代碼部分一起被編譯成為default_aspx ,如下:
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace ASP
{
public class default_aspx : Page
{
protected ScriptManager ScriptManager1;
protected TextBox TextBox1;
protected Button Button1;
protected Label Info;
protected UpdatePanel UpdatePanel1;
protected HtmlForm form1;
private UpdatePanel @__BuildControlUpdatePanel1()
{
. . .
}
private HtmlForm @__BuildControlform1()
{
. . .
}
private void @__BuildControlTree(default_aspx @__ctrl)
{
IParserAccessor @__parser = ((IParserAccessor) (@__ctrl));
@__parser.AddParsedSubObject(
new LiteralControl(“<html xmlns=\”http://www.w3.org/1999/xhtml\”>”));
@__parser.AddParsedSubObject(new LiteralControl(“\r\n<body>\r\n “));
HtmlForm @__ctrl2 = this.@__BuildControlform1();
@__parser.AddParsedSubObject(@__ctrl2);
@__parser.AddParsedSubObject(
new LiteralControl(“\r\n</body>\r\n</html>\r\n”));
}
protected override void FrameworkInitialize()
{
base.FrameworkInitialize();
this.@__BuildControlTree(this);
}
}
}