2024年4月27日发(作者:)

4.0 服务器控件概述

Web 服务器控件 (Web server control)属于trols命名空

间的服务器控件。Web服务器控件比HTML服务器控件更丰富、更抽象。

Web服务器控件在页上有asp标记前缀,例如

在 2.0中,Web服务器控件是指在服务器上执行程序逻辑的组件。这

个组件可能生成一定的用户界面,也可能不包括用户界面。每个服务器控件都包含

一些成员对象,以便开发人员调用,例如,属性、事件、方法等。

通常情况下,服务器控件都包含在页面中。当运行页面时,.NET执

行引擎将根据控件成员对象和程序逻辑定义完成一定的功能。例如,在客户端呈现

用户界面。这时,用户可与控件发生交互行为,当页面被用户提交时,控件可在服

务器端引发事件,并由服务器端根据相关事件处理程序来进行事件处理。服务器控

件是WebForm编程模型的重要元素,它们构成了一个新的、基于控件的表单程序

的基础。通过这种方式可以简化Web应用程序的开发,提高应用程序的开发效率。

服务器控件的广泛应用,简化了应用程序的开发,提高了工作效率。那么,何

时应创建并使用自定义服务器控件呢?下面列举了在三种具体适用情况:

某个现有服务器控件基本符合应用要求,但是,缺少某些特殊的功能,这时可以通过

从现有控件中派生并重写其属性、方法或事件来自定义服务器控件。

需要使用的服务器控件结合了两个或多个现有控件的功能,例如,封装一个按钮和一

个文本框的复合控件。此时可以通过创建服务器控件达到这一目的。

现有服务器控件(或其组合)均不符合应用的要求。对于这种情况,可以通过从基类

派生的方式来创建自定义服务器控件。

1.服务器控件特性

Web服务器控件特性经过总结可分为五种,详细介绍如下:

功能丰富的对象模型,该模型具有类型安全编程功能。由于Web服务器控件是

框架全新封装提供的新控件,因此其具有严格的类型安全检查。

自动浏览器检测。Web服务器控件可以检测浏览器的功能,并为基本型和丰富型(HTML

4.0或以上) 浏览器创建适当的输出。

对于某些控件,可以使用模板来自定义控件的外观。

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

体时引发。

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

2.HTML服务器控件与Web服务器控件的区别

HTML服务器控件与Web服务器控件的区别如表6-1所示。

表6-1 HTML服务器控件与Web服务器控件的区别

项目 HTML服务器控件 Web服务器控件

是否映射到HTML标签 与HTML标签存在一一对应的映射

关系。runat=server属性把传统的

HTML标签转换成服务器控件。这使

得开发人员可以将ASP页面移植到

平台上。

不直接映射到HTML标签,这

使得可以开发人员可以使用第

三方的控件。

对象模型 使用HTML中心对象模型,在该模型

中,控件包括一个关健字/值对的属性

集合。

使用基于组件的对象模型,该

模型要求使用一致对象类型。

是否能自适应输出 不能根据浏览器的不同,调整所输出

HTML文档的显示效果。

可以自动根据浏览器的不同,

调整所输出HTML文档的显示

效果。

3.Web服务器控件的公共属性

Web服务器控件的公共属性可分为两类,具体介绍如下。

 trol类的属性

trol类是trols命名

空间中的所有控件的基类,常用属性如表6-2所示。

表6-2 trol类的属性

名称

AccessKey

BackColor

BorderColor

BorderStyle

BorderWidth

Enabled

Font

ForeColor

Height

Style

TabIndex

ToolTip

Width

名称

NotSet

None

Dotted

解释

表示用于快速定位到Web服务器控件的访问键。默认为空,表示不设置该属

性。

表示Web服务器控件的背景色,默认为空,表示不设置该属性。

表示Web控件的边框颜色,默认为空,表示不设置该属性。

表示Web服务器控件的边框样式,默认为NotSet,其取值如表6-3所示。

表示Web服务器控件的边框宽度,默认为空,表示不设置该属性。

表示是否启用Web服务器控件。

表示Web服务器控件关联的字体属性。

表示Web服务器控件的前景色(通常是文本颜色)。

表示Web服务器控件的高度。

包含要在Web服务器控件的外部标记上呈现的HTML样式属性。

Web服务器控件的选项卡索引。默认为0,表示不设置此属性。

表示当鼠标指针悬停在Web服务器控件上时显示的文本。

表示Web服务器控件的宽度。

表6-3 BorderStyle取值表

解释

不设置边框样式。

无边框。

虚线边框。

Dashed

Solid

Double

Groove

Ridge

Inset

Outset

点划线边框。

实线边框。

双实线边框。

用于凹陷边框外观的凹槽状边框。

用于凸起边框外观的突起边框。

用于凹陷控件外观的内嵌边框。

用于凸起控件外观的外嵌边框。

 其他的常用属性

其他常用属性如表6-4所示。

表6-4 服务器控件其他常用属性

名称

ID

Text

解释

继承自l类,所有Web服务器控件都可以通过该属性来

唯一标识和引用。

所有接受用户输入,显示数据和提示数据的Web服务器控件都可以通过Text

属性来表示用于在控件上显示的文本,例如TextBox、Lablel、Button、CheckBox

等控件。

AutoPostBack 所有发送窗体或单击按钮时将其数据回传到服务器的Web控件都具有

AutoPostBack属性,该属性是布尔类型。表示当用户修改控件中的文本并使焦

点离开该控件时,是否向服务器自动回送。True表示每当用户更改文本框中的

文本并使焦点离开该控件时,都会向服务器自动回送,否则为false。默认为

false。

EnableViewState 继承自l类,此属性用于定义控件的视图状态或其包含的

当前值在窗体发回到服务器之后是否保留在控件中。默认情况,该属性设为

True,即将窗体回发到服务器后,所有控件输入和选择的数据将保留在控件中,

如果不需要保留输入的值则应将此属性设为False。例如,首次打开页面时,

TextBox值为空,当输入数据并发回到服务器后,若该值为False,则将清空

TextBox的值,否则保留TextBox的输入值。