非常教程

ASP.NET 教程教程

ASP.NET 服务器控件

ASP.NET 服务器控件

ASP.NET Web Forms - 服务器控件


服务器控件是服务器可理解的标签。


经典 ASP 的局限性

下面列出的代码是从上一章中复制的:

<html>
<body bgcolor="yellow">
<center>
<h2>Hello verydoc!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>

上面的代码反映出经典 ASP 的局限性:代码块必须放置在您想要输出显示的位置。

通过经典 ASP,想要把可执行代码从 HTML 页面中分离出来是不可能的。这让页面变得难以阅读,也难以维护。


ASP.NET - 服务器控件

ASP.NET 通过服务器控件,已经解决了上述的"意大利面条式代码"问题。

服务器控件是服务器可理解的标签。

有三种类型的服务器控件:

  • HTML 服务器控件 - 创建的 HTML 标签
  • Web 服务器控件 - 新的 ASP.NET 标签
  • Validation 服务器控件 - 用于输入验证

ASP.NET - HTML 服务器控件

HTML 服务器控件是服务器可理解的 HTML 标签。

ASP.NET 文件中的 HTML 元素,默认是作为文本进行处理的。要想让这些元素可编程,需向 HTML 元素中添加 runat="server" 属性。这个属性表示,该元素将被作为服务器控件进行处理。同时需要添加 id 属性来标识服务器控件。id 引用可用于操作运行时的服务器控件。

注释:所有 HTML 服务器控件必须位于带有 runat="server" 属性的 <form> 标签内。runat="server" 属性表明了该表单必须在服务器上进行处理。同时也表明了包含在它内部的控件可被服务器脚本访问。

在下面的实例中,我们在 .aspx 文件中声明了一个 HtmlAnchor 服务器控件。然后我们在一个事件句柄(事件句柄是一种针对给定事件执行代码的子例程)中操作 HtmlAnchor 控件的 HRef 属性。Page_Load 事件是 ASP.NET 可理解的多种事件中的一种:

<script runat="server">
Sub Page_Load
link1.HRef="http://www.verydoc.net"
End Sub
</script>

<html>
<body>

<form runat="server">
<a id="link1" runat="server">Visit verydoc!</a>
</form>

</body>
</html>

可执行代码本身已经被移到 HTML 之外了。


ASP.NET - Web 服务器控件

Web 服务器控件是服务器可理解的特殊 ASP.NET 标签。

就像 HTML 服务器控件,Web 服务器控件也是在服务器上创建的,它们同样需要 runat="server" 属性才能生效。然而,Web 服务器控件没有必要映射任何已存在的 HTML 元素,它们可以表示更复杂的元素。

创建 Web 服务器控件的语法是:

<asp:control_name id="some_id" runat="server" />

在下面的实例中,我们在 .aspx 文件中声明了一个 Button 服务器控件。然后我们为 Click 事件创建一个事件句柄,用来改变按钮上的文本:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script>

<html>
<body>

<form runat="server">
<asp:Button id="button1" Text="Click me!"
runat="server" OnClick="submit"/>
</form>

</body>
</html>


ASP.NET - Validation 服务器控件

Validation 服务器控件是用来验证用户输入的。如果用户输入没有通过验证,将显示一条错误消息给用户。

每种 validation 控件执行一种指定类型的验证(比如验证某个指定的值或者某个范围的值)。

在默认情况下,当 Button、ImageButton、LinkButton 控件被点击时,会执行页面验证。您可以设置 CausesValidation 为 false ,来阻止按钮控件被点击时进行验证。

创建 Validation 服务器控件的语法是:

<asp:control_name id="some_id" runat="server" />

在下面的实例中,我们在 .aspx 文件中声明了一个 TextBox 控件、一个 Button 控件、一个 RangeValidator 控件。如果验证失败,文本 "The value must be from 1 to 100!" 将会显示在 RangeValidator 控件中:

实例

<html>
<body>

<form runat="server">
<p>Enter a number from 1 to 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Submit" runat="server" />
</p>

<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="The value must be from 1 to 100!"
runat="server" />
</p>
</form>

</body>
</html>
ASP.NET 服务器控件
ASP.NET 教程

ASP.NET 是微软公司提出的一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。ASP.NET 支持三种不同的开发模式:单页面模式、MVC 模式、事件驱动模式。

ASP.NET 教程目录

1.ASP.NET Web Pages Razor
2.ASP.NET Web Pages 教程
3.ASP.NET
4.ASP.NET 教程
5.ASP.NET Web Pages 布局
6.ASP.NET Web Pages 对象
7.ASP.NET Web Pages HTML 表单
8.ASP.NET Web Pages – 发布
9.ASP.NET Web Pages Email
10.ASP.NET Web Pages WebGrid
11.ASP.NET Web Pages 文件
12.ASP.NET Razor 语法
13.ASP.NET Razor 标记
14.ASP.NET WebPages 帮助器参考手册
15.ASP.NET Web Pages WebMail 参考手册
16.ASP.NET Web Pages Database 参考手册
17.ASP.NET Web Pages WebSecurity 参考手册
18.ASP.NET Web Pages 类参考手册
19.ASP.NET Web 的 C# 和 VB 实例
20.ASP.NET Razor C# 循环和数组
21.ASP.NET Razor C# 变量
22.ASP.NET Razor VB 逻辑
23.ASP.NET Razor VB 循环和数组
24.ASP.NET Razor VB 变量
25.ASP.NET Razor C# 逻辑
26.ASP.NET MVC 模型
27.ASP.NET MVC 页面和布局
28.ASP.NET 事件句柄
29.ASP.NET 服务器控件
30.ASP.NET Web 页面
31.ASP.NET Web Forms 教程
32.ASP.NET MVC 参考手册
33.ASP.NET MVC – 发布
34.ASP.NET MVC HTML 帮助器
35.ASP.NET Repeater 控件
36.ASP.NET XML 数据绑定
37.ASP.NET SortedList
38.ASP.NET Hashtable
39.ASP.NET ArrayList
40.ASP.NET 数据绑定
41.ASP.NET Button 控件
42.ASP.NET TextBox 控件
43.ASP.NET ViewState
44.ASP.NET Web 表单
45.ASP.NET DataList 控件
46.ASP.NET 母版页
47.ASP.NET 数据库连接
48.ASP.NET 实例
49.ASP.NET 导航
50.ASP.NET HtmlAnchor 控件
51.ASP.NET HtmlGeneric 控件
52.ASP.NET HtmlForm 控件
53.ASP.NET HtmlButton 控件
54.ASP.NET HtmlInputHidden 控件
55.ASP.NET HtmlInputFile 控件
56.ASP.NET HtmlInputCheckBox 控件
57.ASP.NET HtmlInputButton 控件
58.ASP.NET HtmlImage 控件
59.ASP.NET AdRotator 控件
60.ASP.NET HTML 服务器控件
61.ASP.NET HtmlTextArea 控件
62.ASP.NET HtmlTableRow 控件
63.ASP.NET HtmlTableCell 控件
64.ASP.NET HtmlTable 控件
65.ASP.NET HtmlSelect 控件
66.ASP.NET HtmlInputText 控件
67.ASP.NET HtmlInputRadioButton 控件
68.ASP.NET HtmlInputImage 控件
69.ASP.NET Label 控件
70.ASP.NET ImageButton 控件
71.ASP.NET Image 控件
72.ASP.NET HyperLink 控件
73.ASP.NET DropDownList 控件
74.ASP.NET CheckBoxList 控件
75.ASP.NET CheckBox 控件
76.ASP.NET CalendarDay 控件
77.ASP.NET Calendar 控件
78.ASP.NET Button 控件
79.ASP.NET Style 控件
80.ASP.NET BulletedList 控件
81.ASP.NET RadioButtonList 控件
82.ASP.NET RadioButton 控件
83.ASP.NET PlaceHolder 控件
84.ASP.NET Panel 控件
85.ASP.NET Literal 控件
86.ASP.NET ListItem 控件
87.ASP.NET ListBox 控件
88.ASP.NET LinkButton 控件
89.ASP.NET RegularExpressionValidator 控件
90.ASP.NET RangeValidator 控件
91.ASP.NET CustomValidator 控件
92.ASP.NET CompareValidator 控件
93.ASP.NET Web 服务器控件
94.ASP.NET XML 控件
95.ASP.NET TextBox 控件
96.ASP.NET TableRow 控件
97.ASP.NET TableCell 控件
98.ASP.NET Table 控件
99.ASP.NET Validation 服务器控件
100.ASP.NET ValidationSummary 控件