最新的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>

顯示範例»