服務器控件是服務器可以理解的標簽。
下面列出的代碼是從上一節中拷貝的:
<html> <body bgcolor="yellow"> <center> <h2>Hello WebjxCom!</h2> <p><%Response.Write(now())%></p> </center> </body> </Html>
上面的代碼能夠反映出 Classic ASP 的局限性:代碼塊必須放置在需要進行輸出的位置。本信息代表文章來源網頁教學webjx.com請大家去www.webjx.com浏覽!
通過 Classic ASP,我們是無法將可執行代碼與 Html 本身進行分離的。這使得頁面難以閱讀,也難以維護。
通過服務器控件,ASP.Net 已經解決了上面所描述的“意大利面條式代碼”的問題。
服務器控件是可被服務器理解的標簽。
有三種類型的服務器控件:
HTML 服務器控件是服務器可理解的 Html 標簽。
ASP.Net 中的 HTML 元素是作為文本來進行處理的。要想使這些元素可編程,就需要向這些 Html 元素添加 runat="server" 屬性。該屬性指示,此元素是一個服務器控件。同時要添加 id 屬性來標識該服務器控件。id 引用可用於操作運行時的服務器控件。
注釋:所有 Html 服務器控件必須位於帶有 runat="server" 屬性的 <form> 標簽內。runat="server" 屬性指示該表單應在服務器進行處理。它同時指示其包括在內的控件可被服務器腳本訪問。
在下面的例子中,我們在 .ASPx 文件中聲明了一個 HtmlAnchor 服務器控件。然後我們在一個事件句柄中操作該 HtmlAnchor 控件的 HRef 屬性。Page_Load 事件是眾多 ASP.Net 可理解的事件中的一種類型:
注釋:事件句柄(event handler)是一種針對給定事件執行代碼的子例程。本文由網頁教學網webjx.com整理發布!轉載請注明出處,謝謝!
<script runat="server"> Sub Page_Load link1.HRef="http://www.webjx.com" End Sub </script> <html> <body> <form runat="server"> <a id="link1" runat="server">Visit Webjx.com!</a> </form> </body> </Html>
提示:可執行代碼本身已被移到 Html 之外了。
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>
Validation 服務器控件用於驗證用戶輸入。如果用戶輸入沒有通過驗證,將給用戶顯示一條錯誤消息。
每種 validation 控件執行一種特定的驗證類型(比如驗證某個具體的值或者某個范圍的值)。本文是網頁教學www.webjx.com收集整理或者原創內容,轉載請注明出處!
默認地,當點擊 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>