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 顯示網頁中所有驗證錯誤的報告