ASP.NET 服务器控件

asp.net web forms - 服务器控件

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

经典 asp 的局限性

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

<html>
<body bgcolor="yellow">
<center>
<h2>hello yapf!</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.yapf.com"
end sub
</script>

<html>
<body>

<form runat="server">
<a id="link1" runat="server">visit yapf!</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>
相关文章