《 ASPNET数据库网站设计教程(C#版)》 配套教学资源 第4章 ASP NET常用内置 对象 本章内容: ASPNET常用内置对象,包括Page、 Response, Request、 Server对象等。 本章重点:Page、 Response、 Request和 Server对象的使用。 圖王出妖社
第4章 ASP.NET常用内置 对象 《ASP.NET数据库网站设计教程(C#版)》 配套教学资源 本章内容:ASP.NET常用内置对象,包括Page、Response,Request、Server对象等。 本章重点:Page、Response、Request和Server对象的使用
41Page对象 Pge对象是由 System. Web. U命名空间中的Page类来实现的 。Page类与 ASP.NET网页文件(,aspx)相关联。 ASP.NET 网页也称为“Web窗体”或“Web页面”,这些文件在运 行时被编译成Page对象,并缓存在服务器中 ■411Page对象的常用属性、方法和事件 1Page对象的属性 Page对象提供的常用属性见表41 表4-1Page对象的常用属性 属性名 获取 Controlcollection对象,该对象表示UI( User Interface,用户接口)层次结构中指定服务器控 Controls 件的子控件 该属性返回一个逻辑值,表示页面是首次加载的,还是响应客户端回发而再次加载的, false表示首 Is PostBack 次加载,true表示是再次加载的 Is valid 该属性返回一个逻辑值,表示页面是否通过验证 Enableviewstate获取或设置一个值,用来指示当前页请求结束时,是否保持其视图状态 Validators属性 取请求的页上包含的全部验证空间的集合
◼ Page对象是由System.Web.UI命名空间中的Page类来实现的 。Page类与ASP.NET网页文件(.aspx)相关联。ASP.NET 网页也称为“Web窗体”或“Web页面”,这些文件在运 行时被编译成Page对象,并缓存在服务器中。 ◼ 4.1.1 Page对象的常用属性、方法和事件 ◼ 1. Page对象的属性 ◼ Page对象提供的常用属性见表4-1。 4.1 Page对象
【演练41】下列代码实现了在页面首次加载时,填充列 表框 Listbox1中的各选项,而回发刷新时不重复加载 protected void Page_ Load(object sender, EventArgs e) Button1.'ext="引起回发";/设置按钮控件上显示的文 本 if( IsPostback)//如果页面的加载不是回发引起的,则 执行下列代码 Listbox1 Items. Add("教务处");//填充列表框中的选项 Listboxitems.Add("学生处"); Listbox1 Items. Ado("财务处");
◼ 【演练4-1】 下列代码实现了在页面首次加载时,填充列 表框ListBox1中的各选项,而回发刷新时不重复加载。 ◼ protected void Page_Load(object sender, EventArgs e) ◼ { ◼ Button1.Text = "引起回发"; //设置按钮控件上显示的文 本 ◼ if (!IsPostBack) //如果页面的加载不是回发引起的,则 执行下列代码 ◼ { ◼ ListBox1.Items.Add("教务处"); //填充列表框中的选项 ◼ ListBox1.Items.Add("学生处"); ◼ ListBox1.Items.Add("财务处"); ◼ } ◼ }
如图41所示,用户单击页面中“引起回发”按钮时,会因 回发而导致页面刷新(再次执行 Page load事件处理程序 ),但列表框中的选项仍可正常显示。 财务处 图4-1回发时不执行列表框填充代码
◼ 如图4-1所示,用户单击页面中“引起回发”按钮时,会因 回发而导致页面刷新(再次执行Page_Load事件处理程序 ),但列表框中的选项仍可正常显示
如果将代码中对 IsPostback属性的判断语句去掉,再次运 行程序时将看到如图42所示的错误结果。代码如下: protected void Page_ Load(object sender, EventArgs e) Button1.'ext="引起回发";/设置按钮控件上显示的文 本 ListBox 1 Items. Addc("教务处");//只要页面加载就填充列 表框中的选项 Listbox1 Items. Ado("学生处"); ListBox1 Items Add("财务处"); 教务处 学生处 教务处 字生处 财务处·「引起回发 图4-2由于回发导致的列表框填充重复
◼ 如果将代码中对IsPostBack属性的判断语句去掉,再次运 行程序时将看到如图4-2所示的错误结果。代码如下: ◼ protected void Page_Load(object sender, EventArgs e) ◼ { ◼ Button1.Text = "引起回发"; //设置按钮控件上显示的文 本 ◼ ListBox1.Items.Add("教务处"); //只要页面加载就填充列 表框中的选项 ◼ ListBox1.Items.Add("学生处"); ◼ ListBox1.Items.Add("财务处"); ◼ }
2Page对象的常用方法和事件 Pge对象的常用方法见表42。 表4-2Page对象的常用方法 方法名 说明 DataBind 将数据源绑定到被调用的服务器控件及所有子控件 Findcontrol(id) 在页面上搜素标识符为id的服务器控件,返回值为找到的控件,若控件不存在则返回Nul 将 content指定的字符串解释成Web页面或用户控件的构成控件,该方法的返回值为生成的 Parse Control(content) 控件 RegisterClien Scrip Block向页面发出客户端脚本块 方法 Validate方 指示页面中所有验证控件进行验证 Pge对象的常用事件见表43 表4-3Page对象的常用事件 事件名 说明 Init事件 当服务器控件初始化时发生,这是控件生存期的第一步 Load事件 当服务器控件加载到Page对象上触发的事件 Unload事件 当服务器控件从内存中卸载时发生
◼ 2. Page对象的常用方法和事件 ◼ Page对象的常用方法见表4-2。 ◼ Page对象的常用事件见表4-3
412web页面的生命周期 Web页面的生命周期及各阶段执行的内容如下。 ①初始化 ■②加载视图状态 ③处理回发数据 ④加载 ⑤预呈现 ■⑥保存状态 ■⑦呈现 ■⑧处置 ■⑨卸载
◼ 4.1.2 Web页面的生命周期 ◼ Web页面的生命周期及各阶段执行的内容如下。 ◼ ① 初始化 ◼ ② 加载视图状态 ◼ ③ 处理回发数据 ◼ ④ 加载 ◼ ⑤ 预呈现 ◼ ⑥ 保存状态 ◼ ⑦ 呈现 ◼ ⑧ 处置 ◼ ⑨ 卸载
413Page对象的Load事件与nit事件比较 【演练42】设计一个 ASPNET网站,向Web窗体中添加 两个列表框控件 ListBox1和 Listbox2,添加一个按钮控件 Button1。在Page对象的Ioad事件和Init事件中分别向 Listbox1和 Listbox2中填充若干数字作为选项。按钮控件无 须编写任何代码,只是要在用户单击按钮时引起一个服务 器端回发。 切换到代码编辑窗口,编写 Page load和 Page_ Init事件代码 如下:
◼ 4.1.3 Page对象的Load事件与Init事件比较 ◼ 【演练4-2】 设计一个ASP.NET网站,向Web窗体中添加 两个列表框控件ListBox1和ListBox2,添加一个按钮控件 Button1。在Page对象的Load事件和Init事件中分别向 ListBox1和ListBox2中填充若干数字作为选项。按钮控件无 须编写任何代码,只是要在用户单击按钮时引起一个服务 器端回发。 ◼ 切换到代码编辑窗口,编写Page_Load和Page_Init事件代码 如下:
protected void Page_ Init(object sender, EventArgs e) for(int 1=1; 1<4; 1++) stBox1. Items. Add(iToString) protected void Page_ Load(object sender, EventArgs e) for(nti=1;<4;1++) istBox2. Items. Add (iToString 0)
◼ protected void Page_Init(object sender, EventArgs e) ◼ { ◼ for (int i = 1; i < 4; i++) ◼ { ◼ ListBox1.Items.Add(i.ToString()); ◼ } ◼ } ◼ protected void Page_Load(object sender, EventArgs e) ◼ { ◼ for(int i=1;i<4;i++) ◼ { ◼ ListBox2.Items .Add (i.ToString()); ◼ } ◼ }
运行程序页面初次加载后,如图4-3所示, Listbox1和 Listbox2两个列表框中填充的数据完全相同。但是,单击 按钮引起回发后可以看到,在 Page_load事件中填充的 Listbox2控件的选项出现了重复,如图44所示 Page对象的hni事件与Load事件的比较 Page对象的In事件与Load事件的比较 在lni事件中填充在Load事件中填充 在Init事件中填充在Load事件中填充 引起回发 「引起回发 图4-3页面初次加载时的状况 图4-4页面回发后的状况
◼ 运行程序页面初次加载后,如图4-3所示,ListBox1和 ListBox2两个列表框中填充的数据完全相同。但是,单击 按钮引起回发后可以看到,在Page_Load事件中填充的 ListBox2控件的选项出现了重复,如图4-4所示