Web Forms 控制項



伺服器控制項是伺服器可理解的標籤。


經典ASP 的限制

下面列出的程式碼是從上一章複製的:

##<html>
<body bgcolor="yellow">
<center>
<h2>Hello W3CSchool.cc!</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.w3cschool.cc"
End Sub
</script>

<html>
<body>

#<form runat= "server">
<a id="link1" runat="server">Visit W3CSchool.cc!</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、LinkBut​​ton 控制項被點選時,會執行頁面驗證。您可以設定 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>