ASP.NET - Web 服务器控件概述

 

在创建 ASP.NET 网页时,您可以使用以下类型的控件:

· HTML 服务器控件   对服务器公开的 HTML 元素,可对其进行编程。HTML 服务器控件公开一个对象模型,该模型十分紧密地映射到相应控件所呈现的 HTML 元素。

·Web 服务器控件   这些控件比 HTML 服务器控件具有更多内置功能。Web 服务器控件不仅包括窗体控件(例如按钮和文本框),而且还包括特殊用途的控件(例如日历、菜单和树视图控件)。Web 服务器控件与 HTML 服务器控件相比更为抽象,因为其对象模型不一定反映 HTML 语法。

·验证控件   包含逻辑以允许对用户在输入控件(例如 TextBox 控件)中输入的内容进行验证的控件。验证控件可用于对必填字段进行检查,对照字符的特定值或模式进行测试,验证某个值是否在限定范围之内,等等。

·用户控件   作为 ASP.NET 网页创建的控件。ASP.NET 用户控件可以嵌入到其他 ASP.NET 网页中,这是一种创建工具栏和其他可重用元素的捷径。

 

说明: 您还可以创建用于移动设备的输出。为此,可使用同一个 ASP.NET 页框架(但要创建的是移动 ASP.NET 网页而不是 ASP.NET 网页),并使用专门为移动设备设计的控件。

在相同的页上可以使用所有类型的控件。以下各节提供了有关 ASP.NET 服务器控件的更多详细信息。

说明: 在某些情况下,服务器控件需要客户端脚本才能正常工作。如果用户在浏览器中禁用脚本功能,则控件可能无法按预定方式工作。

 

1HTML 服务器控件

HTML 服务器控件属于 HTML 元素(或采用其他支持的标记的元素,例如 XHTML),它包含多种属性,使其可以在服务器代码中进行编程。默认情况下,服务器上无法使用 ASP.NET 网页中的 HTML 元素。这些元素将被视为不透明文本并传递给浏览器。但是,通过将 HTML 元素转换为 HTML 服务器控件,可将其公开为可在服务器上编程的元素。

HTML 服务器控件的对象模型紧密映射到相应元素的对象模型。例如,HTML 属性在 HTML 服务器控件中作为属性公开。

页中的任何 HTML 元素都可以通过添加属性 runat="server" 来转换为 HTML 服务器控件。在分析过程中,ASP.NET 页框架将创建包含 runat="server" 属性的所有元素的实例。若要在代码中以成员的形式引用该控件,则还应为该控件分配 id 属性。

页框架为页中最常动态使用的 HTML 元素提供了预定义的 HTML 服务器控件:form 元素、input 元素(文本框、复选框、“提交”按钮)、select 元素,等等。这些预定义的 HTML 服务器控件具有一般控件的基本属性,此外每个控件通常提供自己的属性集和自己的事件。

HTML 服务器控件提供以下功能:

·可在服务器上使用熟悉的面向对象的技术对其进行编程的对象模型。每个服务器控件都公开一些属性 (Property),您可以使用这些属性 (Property) 在服务器代码中以编程方式来操作该控件的标记属性 (Attribute)

·提供一组事件,您可以为其编写事件处理程序,方法与在基于客户端的窗体中大致相同,所不同的是事件处理是在服务器代码中完成的。

·在客户端脚本中处理事件的能力。

·自动维护控件状态。在页到服务器的往返行程中,将自动对用户在 HTML 服务器控件中输入的值进行维护并发送回浏览器。

·与 ASP.NET 验证控件进行交互,因此您可以验证用户是否已在控件中输入了适当的信息。

·数据绑定到一个或多个控件属性。

·支持样式(如果在支持级联样式表的浏览器中显示 ASP.NET 网页)。

·直接可用的自定义属性。您可以向 HTML 服务器控件添加所需的任何属性,页框架将呈现这些属性而不会更改其任何功能。这允许您向控件添加浏览器特定属性。

 

2Web 服务器控件

Web 服务器控件是设计侧重点不同的另一组控件。它们不必一对一地映射到 HTML 服务器控件,而是定义为抽象控件,在抽象控件中,控件所呈现的实际标记与编程所使用的模型可能截然不同。例如,RadioButtonList Web 服务器控件可以在表中呈现,也可以作为带有其他标记的内联文本呈现。

Web 服务器控件包括传统的窗体控件,例如按钮、文本框和表等复杂控件。它们还包括提供常用窗体功能(例如在网格中显示数据、选择日期、显示菜单等)的控件。

除了提供 HTML 服务器控件的上述所有功能(不包括与元素的一对一映射)外,Web 服务器控件还提供以下附加功能:

·功能丰富的对象模型,该模型具有类型安全编程功能。

·自动浏览器检测。控件可以检测浏览器的功能并呈现适当的标记。

·对于某些控件,可以使用 Templates 定义自己的控件布局。

·对于某些控件,可以指定控件的事件是立即发送到服务器,还是先缓存然后在提交该页时引发。

·支持主题,您可以使用主题为站点中的控件定义一致的外观。

·可将事件从嵌套控件(例如表中的按钮)传递到容器控件。

控件使用类似如下的语法:

<asp:button attributes runat="server" id="Button1" />

本例中的属性不是 HTML 元素的属性。相反,它们是 Web 控件的属性。

      在运行 ASP.NET 网页时,Web 服务器控件使用适当的标记在页中呈现,这通常不仅取决于浏览器类型,还与对该控件所做的设置有关。例如,TextBox 控件可能呈现为 input 标记,也可能呈现为 textarea 标记,具体取决于其属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值