`

在ASP.NET 2.0中,一个ASP.NET页面的生命周期

阅读更多

客户端请求页面
1、预初始化(OnPreInit)
2、初始化(OnInit)
3、完成初始化(OnInitComplete)
4、载入ViewState(LoadViewState)
5、处理回送数据(IPostBackDataHandler)
6、Page_OnPreLoad—》Page_OnLoad
7、回发更改通知(RaisePostDataChangedEvent)
8、处理回发事件(RaisePostBackEvent)
9、Page_OnLoadComplete
10、预呈现(OnPreRender)
11、完成预呈现(OnPreRenderComplete)
12、保存ControlState(SaveControlState)
13、保存ViewState(SaveViewState)
14、呈现(Render)
15、Page_UnLoad

 

OnPreInit:在初始化页面OnInit事件前触发。在这个阶段里,可以进行定义站点主题(Theme)或加载站点个性化所需要的数据信息等操作。

OnInitComplete:完成初始化页面OnInit事件后触发。

OnPreLoad:在加载页面OnLoad事件前触发。

OnLoadComplete:完成页面加载OnLoad事件后触发。

OnPreRenderComplete:在完成预呈现OnPreRender事件后触发。这是完成页面呈现的最后一道关卡,在此之后,页面将无法再进行任何呈现上的改动。

SaveControlState:保存控件状态ControlState。ControlState是ASP.NET2.0控件新增的一个属性,类似

 

ViewState作用,但它们区别在于ControlState用于保存更加重要的控件状态信息,以保证在禁用ViewState的情况下还可以对控件状态进行读写操作。

 


增加对页面Header的控制:
System.Web.UI.Page类新增加了Header属性,用于对HTML页面头区域里数据的操作。通过对Header属性的跟踪,可以发现,Header属性保存着一个实现IPageHeader接口的对象(该对象有LinkedStyleSheets、Metadata、StyleSheet和Title四个属性),实际上正是通过这个对象实现对HTML页面头区域里数据的操作的。
例如:

 


 

<script runat="server"> 
void Page_Load(object sender, System.EventArgs e) 
{ 
this.Header.Metadata.Add("author", "brooks"); 
} 
</script> 

 

其运行结果为:

<html> 
<head> <title>Untitled Page</title> 
<meta name="author" content="brooks" /> 
</head>

 

定义表单中的默认按钮:
在ASP.NET1.0中,我就为了设置表单中的默认按钮而一筹莫展。幸好ASP.NET2.0把这个功能补上了,现在可以非常方便的设置表单中的默认按钮了。

<%@ page language="C#" %> 
<script runat="server"> 
void Button1_Click(object sender, System.EventArgs e) 
{ 
this.LB_Message.Text = "You clicked button1"; 
} 
</script> 
<html> 
<head runat="server"> 
<title>Untitled Page</title> 
</head> 
<body> 
<form runat="server" defaultbutton="Button1"> 
<asp:textbox id="Textbox1" runat="server"></asp:textbox> 
<asp:button id="Button1" runat="server" text="Button" onclick="Button1_Click" /> 
<asp:label id="LB_Message" runat="server"></asp:label> 
</form> 
</body> 
</html> 

    设置焦点:
  现在假设为TextBox1控件设置焦点,在ASP.NET 2.0中可以这样实现:
  this.Textbox1.Focus(); 或 this.SetFocus(this.Textbox1); 即可为TextBox1控件设置焦点。
  如果打算也为表单设置个默认焦点控件,让光标默认停留在TextBox1上:
  <form runat="server" defaultfocus="TextBox1">
 

跨页面数据发送:
如果你需要多个页面发送数据到同一个表单程序进行处理,或者数据在多个页面之间传输处理的话,你就可以使用ASP.NET 2.0这个新特性。例如,我打算把Default.aspx页里TextBox1里的文本数据发送到Default2.aspx页面进行处理:
Default.aspx页:

 

 

<%@ Page Language="C#" %> 
<script runat="server"> 
void Page_Load(object sender, System.EventArgs e) 
{ 
TextBox textBox1 = (TextBox)PreviousPage.FindControl("TextBox1"); 
this.Label1.Text = "Hi," + textBox1.Text + ". This is Default2.aspx!"; 
} 
</script> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
<title>Untitled Page</title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<asp:label id="Label1" runat="server"></asp:label> 
</form> 
</body> 
</html>

 

 

分享到:
评论

相关推荐

    asp.net 会话状态

    讲述asp.net生命周期中回话状态的作用,意义,以及编程方法。

    ASP.NET 2.0 跟我一起学Visual.Studio2005 2/9

    课程简介:ASP.NET 2.0 除了编译模型的改进之外,针对页面生命周期也公开了新的事件来支持新功能,例如母版页、个性化以及集成的设备支持等。增强的缓存功能,以及扩展性支持,本课程主要对以上几个方面进行阐述。...

    ASP.NET 2.0 跟我一起学Visual.Studio2005 1/9

    课程简介:ASP.NET 2.0 除了编译模型的改进之外,针对页面生命周期也公开了新的事件来支持新功能,例如母版页、个性化以及集成的设备支持等。增强的缓存功能,以及扩展性支持,本课程主要对以上几个方面进行阐述。...

    [ASP.NET.AJAX编程参考手册(涵盖ASP.NET.3.5及2.0)].(美)霍斯拉维.扫描版.pdf

    书中的所有代码都通过了ASP.NET 2.0和ASP.NET 3.5的测试。通过本书,您将学习到这些框架之间是如何进行协同以满足AJAx应用需求的。本书将为您提供开发ASP.NET AJAX应用所必需的技能和知识。 内容简介 本书以AJAX为...

    asp.net2.0系列教程第2章_第1节

    页面生命周期 页面事件 Page_Load事件以及Page.IsPostBack 页面控件事件

    ASP.NET2.0的内部变化

    摘要:虽然ASP.NET2.0百分之百地向后与ASP.NET1.1兼容,但它给ASP.NET带来了很多内部的变化。...在此白皮书中,我们将探讨自版本1.x以来ASP.NET2.0的内部结构是如何变化的。本文探讨的主题对注重性能

    Programming ASP.NET 中文版(第3版).rar

    《Programming ASP.NET 中文版(第3版)...《Programming ASP.NET 中文版(第3版)》对于ASP.NET 2.0技术和Visual Studio 2005进行了全面讲解,出色地囊括了读者在实际编程中会用到的ASP.NET的重要特性,十分适合中级读者。

    Programming ASP.NET 中文版(第3版)

    《Programming ASP.NET 中文版(第3版)...《Programming ASP.NET 中文版(第3版)》对于ASP.NET 2.0技术和Visual Studio 2005进行了全面讲解,出色地囊括了读者在实际编程中会用到的ASP.NET的重要特性,十分适合中级读者。

    ASP.NET 2.0中的页面输出缓存

    这个过程中,缓存不需要再次经过页面处理生命周期。这样可以缩短请求响应时间,提高应用程序性能。很显然,页面输出缓存适用于不需要频繁更新数据,而占用大量时间和资源才能编译生成的页面。对于那些数据经常更新的...

    spring.net中文手册在线版

    11.7.在ASP.NET中的使用技巧 11.7.1.显示验证错误 11.7.1.1.配置错误显示类 第十二章. 使用Spring.NET进行面向方面的编程 12.1.简介 12.1.1.AOP基本概念 12.1.2.Spring.NET AOP的功能 12.1.3.Spring.NET的AOP代理 ...

    Programming.ASP.NET.中文版(第3版)

    在这一版还包含了一些新的主题,包括:用母版页创建一致的外观、简化个性化网站、添加网站导航,包含站点地图和导航条(bread crumbs)、使用新的membership和安全控件实现基于forms的安全、使用新的数据控件及ADO...

    ASP.NET 3.5开发大全 (中文 PDF 完整书签 非扫描)

    第4章:详细的介绍了ASP.NET网页代码模型和生命周期,了解网页代码模型和生命周期能够帮助读者高效的创建ASP.NET应用页面。 第5章:详细的介绍了ASP.NET应用程序中提供的控件,控件为开发人员提供了高效的应用程序...

    asp.net教学讲义

    3.4 ASP.NET2.0新增控件 45 3.4.1 ImageMap控件 45 3.4.2 FileUpload控件 48 3.5 客户端处理 52 3.5.1 第一种方式示例: 52 3.5.2第二种方式:动态注册javascript指令块 53 3.6验证控件 54 3.6.1验证控件简介 54 ...

    在ASP.NET 2.0中操作数据之五十九:使用SQL缓存依赖项SqlCacheDependency

    当然,就像在60章谈到的那样,对静态数据来说,x可延伸到web应用程序的整个生命周期(lifetime)。  当缓存数据时,基于时间周期的技术因为其易用性而常常被采用,不过又常常不那么完美。理想的状态是这样的:数据库...

    ASP.NET开发大全

    第4章:详细的介绍了ASP.NET网页代码模型和生命周期,了解网页代码模型和生命周期能够帮助读者高效的创建ASP.NET应用页面。 第5章:详细的介绍了ASP.NET应用程序中提供的控件,控件为开发人员提供了高效的应用程序...

    ASP.NET 3.5 开发大全

    第4章:详细的介绍了ASP.NET网页代码模型和生命周期,了解网页代码模型和生命周期能够帮助读者高效的创建ASP.NET应用页面。 第5章:详细的介绍了ASP.NET应用程序中提供的控件,控件为开发人员提供了高效的应用程序...

    ASP.NET 3.5 开发大全 压缩包2

    第4章:详细的介绍了ASP.NET网页代码模型和生命周期,了解网页代码模型和生命周期能够帮助读者高效的创建ASP.NET应用页面。 第5章:详细的介绍了ASP.NET应用程序中提供的控件,控件为开发人员提供了高效的应用程序...

    ASP.NET 3.5 开发大全 压缩包1

    第4章:详细的介绍了ASP.NET网页代码模型和生命周期,了解网页代码模型和生命周期能够帮助读者高效的创建ASP.NET应用页面。 第5章:详细的介绍了ASP.NET应用程序中提供的控件,控件为开发人员提供了高效的应用程序...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    1.2.2 ASP.NET2.0 1.2.3 ASP.NET3.5 1.2.4 ASP.NET4 1.2.5 Silverlight 1.3 总结 第2章 Visual Studio 2.1 Visual Studio 2.1.1 网站和Web项目 2.1.2 创建无项目文件的网站 2.1.3 设计网页 2.2...

Global site tag (gtag.js) - Google Analytics