2.2 Web窗体页

无论是创建Web应用程序还是Web网站,都可以为其添加Web窗体页。使用Web窗体页创建可编程的Web页面,这些Web页面用作Web应用程序的用户界面。Web窗体页可以在任何浏览器或者客户端设备中向用户提供信息,并使用服务器端代码来实现应用程序逻辑。

Web窗体页几乎可以包含任何支持HTTP的语言,如HTML与XML、WML、JScript和JavaScript等。

2.2.1 Web窗体页的特点

Web窗体页基于ASP.NET技术,它是创建ASP.NET网站和Web应用程序编程模式常用的一种。Web窗体页是整合了HTML、服务器控件和服务器代码的事件驱动网页,特点如下。

(1)兼容所有的浏览器和设备。Web窗体页自动为样式、布局等功能呈现正确的、符合浏览器的HTML。开发者还可以选择将Web窗体页设计为在特定浏览器(如IE 5)上运行并利用多样式浏览器客户端的功能。

(2)兼容.NET公共语言运行时所支持的任何语言,其中包括Visual Basic、C#和JScript。

(3)基于Microsoft .NET Framework生成,它提供了该框架的所有优点,包括托管环境、类型安全性和继承。

(4)在VS中为快速应用程序开发提供支持,该工具用于对窗体进行设计和编程。

(5)可使用为Web开发提供应用程序功能的控件进行扩展,从而使开发者能够快速地创建多样式的用户界面。

(6)具有灵活性,开发者可以添加用户创建的控件和第三方控件。

2.2.2 Web窗体页的元素

在Web窗体页中,用户界面编程被分为两个不同的部分:可视元素和逻辑。可视元素称作Web窗体“页”,这种页是由一个包含静态HTML和/或ASP.NET服务器控件的文件组成的。Web窗体页的逻辑由代码组成,这些代码由开发者创建与窗体进行交互。

针对可视元素和逻辑,ASP.NET提供两个用于管理它们的模型,即单文件页模型和代码隐藏页模型。这两个模型功能相同,两种模型中可以使用相同的控件和代码。

1.单文件页模型

在单文件页模型中,页的标记及其编程代码位于一个物理文件(即.aspx文件)中,编程代码位于脚本块中,该块包含runat=server属性,该属性标记该块或控件在服务器端执行。

使用单文件页模型有以下几个优点。

(1)可以方便地将代码和标记保留在同一个文件中。

(2)更容易部署或发送给其他程序员。

(3)由于文件之间没有相关性,更容易对单文件页进行重命名。

(4)更易于管理源码文件。

2.代码隐藏页模型

通过代码隐藏页模型,可以在一个文件(即.aspx文件)中保留标记,并在另一个文件(即.aspx.cs文件)中保留编程代码,该文件被称为“代码隐藏”文件或“页面后台”文件,代码文件的名称会根据所使用的编程语言而有所变化。

使用代码隐藏页模型包括以下几个优点。

(1)代码隐藏页可以清晰地区分界面中的标记控件和程序代码。

(2)代码并不会向界面设计人员或其他人员公开。

(3)代码可以在多个页面中进行重用。

2.2.3 Web窗体页的运行过程

当ASP.NET Web应用程序运行时,每一个被请求的Web窗体页都将经历一个运行过程,即生命周期。在该运行过程中,ASP.NET将对Web窗体页进行一系列的处理,如页请求、初始化页面、载入页面、处理事件、预呈现页面、呈现页面和卸载页面等。一个Web窗体从实例化分配内存空间到处理结束释放内存,大体分为4个步骤:页面初始化、页面装载、事件处理和资源清理。

1.页面初始化

当页面被初始化时,发生第一个Page_Init事件,系统会执行创建和设置一个示例所需要的所有初始化步骤。

2.页面装载

页面装载在初始化之后,所引发的是Page_Load事件,用途如下。

(1)根据Page.IsPostBack属性检查页面是不是每一次被处理。

(2)每一次处理页面时执行数据绑定,或者在以后的循环过程中重新判断数据绑定表达式。

(3)读取和更新控件属性。

(4)恢复在保存步骤中所保存的前一个客户请求的状态。

3.事件处理

Web窗体上的每个动作都激活一个到达服务器的事件。一个Web窗体有两个视图:一个客户视图和一个服务器视图。所有的数据处理都在服务器上进行,当通过单击鼠标或者其他方法引起一个事件时,事件就到达服务器并返回相应的数据。

4.资源清理

最后一步发生在一个窗体完成了它的任务并且准备卸载的时候,这时激活Page_Unload事件,完成最后的资源清理工作,如关闭文件、关闭数据库连接和丢弃对象等。

2.2.4 认识Web窗体页

Web窗体页以“.aspx”结尾,当创建基于窗体的Web应用程序或网站时会自动生成一些Web窗体页。当然,开发者也可以亲自动手创建Web窗体页。

【范例1】

首先创建一个基于窗体的Web应用程序,然后在该程序中创建全称是WorkDefault.aspx的Web窗体页。创建完毕后打开页面,【源】窗口中的代码如图2-6所示。

图2-6 Web窗体页【源】窗口代码

在如图2-6所示界面中,单击图中的【设计】标签可打开【设计】窗口,单击【拆分】标签可查看页面的源代码和设计效果。观察图2-6中的代码,首先通过@Page指令定义ASP.NET页解析器和编译器所使用的特定的页面的属性,然后添加一段HTML代码。开发者可以在body元素中添加HTML服务器控件、Web服务器控件或其他内容。

运行页面很简单,在该页面右击,然后选择【在浏览器中查看】项即可。或者选中程序中的Web窗体页右击,然后选择【在浏览器中查看】项运行。