最新的Web开发教程
 

ASP.NET Web窗体 - 服务器控件


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


在传统的ASP限制

该列表下方的是上一节中复制:

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

上面的代码示出了在传统的ASP的限制:该代码块具有被放置在希望的输出出现。

与传统的ASP是不可能从HTML本身分离可执行代码。 这使得页面难以阅读,且难以维护。


ASP.NET - 服务器控件

ASP.NET解决了"spaghetti-code"上述服务器控件那样的问题。

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

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

  • HTML服务器控件 - 传统的HTML标签
  • Web服务器控件 - 新的ASP.NET标签
  • 验证服务器控件 - 对于输入验证

ASP.NET - HTML服务器控件

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

在ASP.NET文件HTML元素,默认情况下,作为文本处理。 为了使这些元素可编程的,添加中用runat =“server”属性的HTML元素。 该属性指示该元素应作为一个服务器控制处理。 该id属性添加到标识服务器控制。 ID号可以被用来操纵在运行时服务器控件。

Note:所有HTML服务器控件必须是一个内<form>与标签runat="server"属性。runat="server"属性指示该形式应在服务器上进行处理。 这也表明,封闭的控件可以被服务器脚本访问。

在下面的例子中,我们宣布在.aspx文件中的HtmlAnchor服务器控件。 然后,我们操纵HRef中的事件处理程序的HtmlAnchor控件的属性(an event handler is a subroutine that executes code for a given event) 。 Page_Load事件是ASP.NET了解许多事件之一:

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

<html>
<body>

<form runat="server">
<a id="link1" runat="server">Visit w3ii!</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文件中一个按钮服务器控件。 然后,我们创建了哪些更改按钮上的文本的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服务器控件

验证服务器控件用于验证用户输入。 如果用户输入没有通过验证,它将显示一个错误消息给用户。

每个验证控制执行特定类型的验证(比如验证针对一个特定的值或值的范围)。

默认情况下,点击一个按钮,ImageButton的,或LinkBut​​ton控件时执行页面验证。 您可以防止验证时被CausesValidation属性设置为false,点击一个按钮控制。

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

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

在下面的例子中,我们声明了一个TextBox控件,一个Button控件,并在.aspx文件中一个控件的作用。 如果验证失败,该文本"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>

显示范例»