在.NET Framework中,Page类为ASP.NET应用程序从.aspx文件构建的所有对象提供基本行为。该类在namespace System.Web.UI命名空间中定义,从TemplateControl中派生出来,实现了IHttpHandler接口:
public class Page : TemplateControl, IHttpHandler
TemplateControl是向ASP.NET页面和用户控件提供基本功能的抽象类。Control类位于这个层次的顶端。它定义由所有的ASP.NET服务器端元素(页面,控件)共享的属性、方法和事件。结构图如下:
Page对象的重要属性
ClientQueryString:获取请求的 URL 的查询字符串部分。这个属性可以用于处理特殊格式的 URL查询字符串。
Visible:这是一个重写自Control类的属性,如果页面的Visible为false,ASP.NET不会为此页面生成任何HTML代码,这时只显示使用Response.write输出的文本。
IsValid:获取一个值,该值指示页验证是否成功。这个属性在使用验证控件时常用。
IsPostBack:获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。如果是为响应客户端回发而加载该页,则为 true;否则为 false。这个属性相当常用,我们常常是在第一次访问页面时进行某些初始化,回发时不进行某些初始化工作,这时候我们就要在page_load事件中使用这个属性判断是否是回发。
Request:获取请求的页的 System.Web.HttpRequest 对象。
Response:获取与该 System.Web.UI.Page 对象关联的 System.Web.HttpResponse 对象。该对象使您得以将 HTTP 响应数据发送到客户端,并包含有关该响应的信息。
Session:获取 ASP.NET 提供的当前 Session 对象。
Theme:获取或设置页主题的名称。
Title:获取或设置页的标题,如果需要动态更换浏览器页标题,这个属性很有用。
Controls: 获取 System.Web.UI.ControlCollection 对象,该对象表示 UI 层次结构中指定服务器控件的子控件。这是继承于Control类的属性。当我们需要访问页面中的控件时它很有用。
Page对象的重要方法
DataBind():将页面中所有的数据绑定控件绑定到数据源。
例如:
int[] a = { 1,2,3,4};
GridView1.DataSource = a;
GridView2.DataSource = a;
this.DataBind();
我们可以使用页面的DataBind()方法将两个GridView绑定到数据源。
FindControl():在页命名容器中搜索带指定标识符的服务器控件。这里要注意的是这个方法并不搜索自身是命名容器的子控件,如果需要搜索页面的所有控件,可以使用递归方法。
SetFocus(Control control):将浏览器焦点设置为指定控件。这是一个非常有用的方法,比方说我们希望页面载入后,焦点在TextBox1对话框上,我们可以在page_load事件中输入如下代码:
this.SetFocus(TextBox1);
Page对象的重要事件
请参见http://www.cnblogs.com/nuaalfm/archive/2008/09/11/1289325.html
我们都知道,所有的aspx的代码分离类都是继承于这个Page类的,但有的时候我们可能发现有一些页面的部分功能大量重复,我们可以将这些重复的部分抽象出来到一个类,让这个类继承于Page类,然后再让那些代码分离类继承于这个类,我们这里举一个实用的例子:
有时我们可能希望我们的页面支持在textbox中输入值后,单击回车后我们可以动态的指定调用哪一个按钮的方法。
页面基类为:
页面类为: