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" />
| 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 轉換的結果 |
數據源控件
[編輯]| 服務器控件 | 描述 |
|---|---|
| SqlDataSource | |
| AccessDataSource | |
| ObjectDataSource | |
| XmlDataSource | |
| SiteMapDataSource |
數據控件
[編輯]| 服務器控件 | 描述 |
|---|---|
| GridView | |
| DetailsView | |
| FormView | |
| DataList |
導航控件
[編輯]| 服務器控件 | 描述 |
|---|---|
| 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 | 顯示網頁中所有驗證錯誤的報告 |