Welcome 微信登录

首页 / 网页编程 / ASP.NET / 浅谈ASP.NET内部机制(五)

浅谈ASP.NET内部机制(五)2011-09-15 博客园 小洋前言:本章要谈页面生命周期了,过程挺多的,但是一点都不难。不信可以看看。我尽量的讲的平实 一些,而且理解页面的生命周期对喜欢开发自定义控件和组件的朋友是很有帮助的。

页面生命周期,也就是处理一个页面请求的过程。我们之前就说过了的,不同文件的由不同的处理程 序来处理。而且处理程序都是实现了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(“ <body> “));
HtmlForm @__ctrl2 = this.@__BuildControlform1();
@__parser.AddParsedSubObject(@__ctrl2);
@__parser.AddParsedSubObject(
new LiteralControl(“ </body> </html> ”));
}
protected override void FrameworkInitialize()
{
base.FrameworkInitialize();
this.@__BuildControlTree(this);
}
}
}