Active Server Pages+ (ASP+) 框架,也称为 Web 窗体,可用来创建可编程的网页,以便将它们作为总体 Web 应用程序的组成部分。Web 窗体在以下方面简化了 Web 应用程序的开发:
本文将重点说明已实现为该框架的组成部分的服务器控件。ASP+ 的其它方面,如缓存、安全、配置和定制,也同样重要。对这些问题的详细说明,可以在 .NET SDK 文档的“开发人员指南”一节中找到。
服务器控件用于创建您的 Web 应用程序的用户界面。它们可以生成适用于目标设备或浏览器的任何输出。在 ASP+ 框架中有两组服务器控件:“HTML 控件”和“Web 控件”,这两组控件都能提供用于 Web 浏览器的 HTML。除了提供 HTML 之外,它们还封装有在往返行程中保留状态以及为各种客户机事件产生服务器端事件的机制。同时,它们还能用作复合控件的组成部分。
下面的各节内容将详细说明这两组控件。
HTML 控件
ASP+ 框架中的第一组控件称为 HTML 控件。这些控件位于 System.Web.UI.HtmlControls 命名空间中,是从 HtmlControl 基类中直接或间接派生出来的。图 1 说明了 HTML 控件的类层次结构。
图 1. ASP+ HTML 控件
对于任何包含 runat="server" 属性的标记,都会为其生成 HTML 控件的实例。例如,下面的 HTML 可创建一个名为“textBox1”的 HtmlInputText 控件的实例:
<input type="text" runat="server" id="textBox1" value="some text">
下表中列出了 HTML 控件以及对应的 HTML 标记。
表 1. HTML 控件标记
控件 对应的标记 HtmlAnchor <a> HtmlButton <button> HtmlSelect <select> HtmlTextArea <textarea> HtmlInputButton <input type="button"> HtmlInputCheckBox <input type="check"> HtmlInputRadioButton <input type="radio"> HtmlInputText <input type="text"> 和 <input type="password"> HtmlInputHidden <input type="hidden"> HtmlInputImage <input type="image"> HtmlInputFile <input type="file"> HtmlForm <form> HtmlImage <img> HtmlTable <table> HtmlTableRow <tr> HtmlTableCell <td> HtmlGenericControl 任何其它没有对应控件的标记,如 <span>、<div> 等。因为 HTML 控件与 HTML 标记直接对应,所以在将现有的 ASP 页面移植到 ASP+ 上时,它们将会大显身手。本文稍后的部分将对这些控件以及与它们对应的 Web 控件进行比较。
Web 控件
ASP+ 框架中的第二组服务器控件称为 Web 控件。这些控件位于 System.Web.UI.WebControls 命名空间中,是从 WebControl 基类中直接或间接派生出来的。图 2 说明了 Web 控件的类层次结构。
图 2. ASP+ Web 控件
Web 控件中包括传统的表单控件,如 TextBox 和 Button ,以及其它更高抽象级别的控件,如 Calendar 和 DataGrid 控件。它们提供了一些能够简化开发工作的特性,其中包括:
在 HTML 标记中,Web 控件会表示为具有命名空间的标记,即带有前缀的标记。前缀用于将标记映射到运行时组件的命名空间。标记的其余部分是运行时类自身的名称。与 HTML 控件相似,这些标记也必须包含 runat="server" 属性。下面是一个声明的示例:
<asp:TextBox id="textBox1" runat="server" Text="[Entry Keywords]"></asp:TextBox>
在上例中,“asp”是标记前缀,会映射到 System.Web.UI.WebControls 命名空间。
||||||本节的其余部分将介绍已在 PDC 和 Beta 1 发行版中实现的 Web 控件。每个控件都带有简要的说明、声明示例和它在浏览器中的显示效果示例。按功能对这些控件进行了分类。
文本显示
Label 控件用于在页面中显示只读的静态文本或数据绑定的文本:
<asp:Label runat="server" Text="Label1" Font-Italic="true"></asp:Label>
输入控件
Web 控件组中包含的一些控件,允许最终用户输入将由服务器上的页面处理的数据。
TextBox 控件用于提供文本编辑能力。与 Label 控件相似,这里的文本也可以是数据绑定的。TextBox 控件支持多种模式,可以用来实现单行输入、多行输入和密码输入:
<asp:TextBox runat="server" Text="TextBox1"></asp:TextBox>
<asp:TextBox runat="server" Mode="Multiline" Rows="3">
document.getElementById('loading').style.display="none";