ASP.NET/Web Server Controls

維基教科書,自由的教學讀本

伺服器控制項是伺服器可理解的標籤。有三種類型的伺服器控制項:

  • HTML 伺服器控制項 - 創建的 HTML 標籤。在System.Web.UI.HtmlControls命名空間。繪製時作為單獨一個HTML元素。
  • Web 伺服器控制項 - 新的 ASP.NET 標籤。在System.Web.UI.WebControls命名空間。繪製時對應0個或多個HTML元素。如Literal、Repeater、Placeholder對應0個HTML元素。
  • Validation 伺服器控制項 - 用於輸入驗證

runat=「server」屬性[編輯]

如果控制項寫了runat=「server」,則它是一個server控制項,在後端cs源文件可以訪問到該控制項。如果控制項不指明runat=「server」屬性,則它是一個html靜態控制項,在後端cs源文件中無法訪問該控制項對象。

Html控制項一般都可以使用runat=「server」屬性。

大部分Asp.NET控制項就是server控制項,必須使用runat=「server」屬性。


AutoPostBack屬性[編輯]

如果控制項寫明了AutoPostBack="True",則它的預定義了事件處理器的事件發生後就會回傳server,由server執行指定的事件處理函數,然後刷新整個頁面。如果控制項不指明AutoPostBack="True",則它不能定義出事件處理器。

ASP.NET - HTML 伺服器控制項[編輯]

HTML 伺服器控制項是伺服器可理解的 HTML 標籤。ASP.NET 文件中的 HTML 元素,默認是作為文本進行處理的。要想讓這些元素可程式,需向 HTML 元素中添加 runat="server" 屬性。這個屬性表示,該元素將被作為伺服器控制項進行處理。同時需要添加 id 屬性來標識伺服器控制項。id 引用可用於操作運行時的伺服器控制項。

所有 HTML 伺服器控制項必須位於帶有 runat="server" 屬性的 <form> 標籤內。runat="server" 屬性表明了該表單必須在伺服器上進行處理。同時也表明了包含在它內部的控制項可被伺服器腳本訪問。

標題文本
HTML伺服器控制項 形式 描述
HtmlAnchor <a>
HtmlButton <button>
HtmlForm <form>
HtmlGeneric
<body>、<div>、<span> 等
控制其他未被具體的 HTML 伺服器控制項規定的 HTML 元素,比如 。
HtmlImage
<image>
HtmlInputButton
<input type="button">、<input type="submit"> 和 <input type="reset">
HtmlInputCheckBox
<input type="checkbox">
HtmlInputFile <input type="file">
HtmlInputHidden <input type="hidden">
HtmlInputImage <input type="image">
HtmlInputRadioButton <input type="radio">
HtmlInputText <input type="text"> 和 <input type="password">
HtmlSelect <select>
HtmlTable
<table>
HtmlTableCell
<td> 和 <th>
HtmlTableRow
<tr>
HtmlTextArea
<textarea>

ASP.NET - Web 伺服器標準控制項[編輯]

Web 伺服器控制項是伺服器可理解的特殊 ASP.NET 標籤。就像 HTML 伺服器控制項,Web 伺服器控制項也是在伺服器上創建的,它們同樣需要 runat="server" 屬性才能生效。然而,Web 伺服器控制項沒有必要映射任何已存在的 HTML 元素,它們可以表示更複雜的元素。

創建 Web 伺服器控制項的語法是:

<asp:control_name id="some_id" runat="server" />
ASP.NET - Web 伺服器標準控制項
Web 伺服器控制項 描述
AdRotator 顯示一個圖形序列
BulletedList 創建項目符號格式的列表
Button 顯示下壓按鈕
Calendar 顯示日曆
CalendarDay calendar 控制項中的一天
CheckBox 顯示複選框
CheckBoxList 創建多選的複選框組
DataGrid 顯示 grid 中數據源的欄位
DataList 通過使用模版顯示數據源中的項目
DropDownList 創建下拉列表
FileUpload
HiddenField
HyperLink 創建超連結
Image 顯示圖像
ImageButton 顯示可點擊的圖像
ImageMap
Label 顯示可程式的靜態內容(使您對其內容應用樣式)
LinkButton 創建超連結按鈕
ListBox 創建單選或多選的下拉列表
ListItem 創建列表中的一個項目
Literal 顯示可程式的靜態內容(無法使您對其內容應用樣式)
Panel 為其他控制項提供容器
PlaceHolder 為由代碼添加的控制項預留空間
RadioButton 創建單選按鈕
RadioButtonList 創建單選按鈕組
Repeater 顯示綁定到控制項的項目的重複列表
Substitution
Style 設置控制項的樣式
Table 創建表格
TableCell 創建表格單元格
TableRow 創建表格行
TextBox 創建文本框
Wizard
Xml 顯示 XML 文件或 XSL 轉換的結果

數據源控制項[編輯]

ASP.NET - 數據源控制項
伺服器控制項 描述
SqlDataSource
AccessDataSource
ObjectDataSource
XmlDataSource
SiteMapDataSource

數據控制項[編輯]

ASP.NET - 數據控制項
伺服器控制項 描述
GridView
DetailsView
FormView
DataList

導航控制項[編輯]

ASP.NET - 導航控制項
伺服器控制項 描述
Menu
SiteMapPath
TreeView

登錄控制項[編輯]

Web Parts控制項[編輯]

驗證控制項[編輯]

驗證控制項(validator control)用于堅持各控制項的用戶輸入值是否滿足檢驗條件。Validation 伺服器控制項是用來驗證用戶輸入的。如果用戶輸入沒有通過驗證,將顯示一條錯誤消息給用戶。每種 validation 控制項執行一種指定類型的驗證(比如驗證某個指定的值或者某個範圍的值)。在默認情況下,當 Button、ImageButton、LinkButton 控制項被點擊時,會執行頁面驗證。您可以設置 CausesValidation 為 false ,來阻止按鈕控制項被點擊時進行驗證。

創建 Validation 伺服器控制項的語法是:

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

ASP.NET 4.5起使用UnobtrusiveValidationMode來設定JavaScript客戶端的驗證邏輯,其值為:

  • "None":ASP.NET應用程式使用4.5版本以前的行為,JavaScript內聯於網頁中做客戶端的驗證。
  • "WebForms":ASP.NET 使用HTML5數據屬性與JavaScript後綁定的客戶端的驗證邏輯的腳本引用。

例如在web.Config中:

        <appSettings>
          <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
        </appSettings>

創建 Validation 伺服器控制項的語法是: <asp:control_name id="some_id" runat="server" />

標題文本
Validation 伺服器控制項 描述
CompareValidator 把一個輸入控制項的值與另一個輸入控制項的值或一個固定的值進行對比
CustomValidator 允許您編寫一個方法,來處理輸入值的驗證
RangeValidator 檢查用戶輸入值是否介於兩個值之間
RegularExpressionValidator 確保輸入控制項的值匹配指定的模式
RequiredFieldValidator 使輸入控制項成為必需(必填)的欄位
ValidationSummary 顯示網頁中所有驗證錯誤的報告