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