窗體控制項

Active Server Pages+ (ASP+) 框架,也稱為 Web 窗體,可用來創建可程式的網頁,以便將它們作為總體 Web 應用程式的組成部分。Web 窗體在以下方面簡化了 Web 應用程式的開發: 在伺服器上提供了基於事件的編程模式,這類似於像 Microsoft Visual Basic® 開發系統這樣的基於 Microsoft® Win32® 的開發工具中所使用的、基於表單的開發模式。

基本介紹

  • 中文名:窗體控制項
  • 外文名:Active Server Pages
  • 別名:網頁
  • 職業: 框架
  • 畢業院校:Web 窗體
  • 代表作品: Microsoft Visual Basic&
WEB窗體,HTML 控制項,Web 控制項,文本顯示,輸入控制項,表單提交和回傳,導航,圖像顯示,版面控制項,日期選擇,列表綁定控制項,其他功能控制項,HTML 控制項與 Web 控制項的比較,控制項抽象,對象模型,目標瀏覽器,對生成的 HTML的控制,Web 窗體和 RAD 體驗,

WEB窗體

允許 HTML 標記與應用程式邏輯的完全分離。邏輯,即頁面後的代碼,是經過編譯的,因而其性能得到了大大提高。
支持控制項和 NET 組件組,提供了統一的、對類型安全的對象模型。此外,該框架還通過定製組件或第三方組件使自身自然適應擴展性的需要。
實現為該框架的組成部分的伺服器控制項。ASP+ 的其它方面,如快取、安全、配置和定製,也同樣重要。伺服器控制項用於創建 Web 應用程式的用戶界面。它們可以生成適用於目標設備或瀏覽器的任何輸出。在 ASP+ 框架中有兩組伺服器控制項:“HTML 控制項”和“Web 控制項”,這兩組控制項都能提供用於 Web 瀏覽器的 HTML。除了提供 HTML 之外,它們還封裝有在往返行程中保留狀態以及為各種客戶機事件產生伺服器端事件的機制。同時,它們還能用作複合控制項的組成部分。

HTML 控制項

ASP+ 框架中的第一組控制項稱為 HTML 控制項。這些控制項位於 System.Web.UI.HtmlControls 命名空間中,是從 HtmlControl 基類中直接或間接派生出來的。
對於任何包含 runat="server" 屬性的標記,都會為其生成 HTML 控制項的實例。例如,下面的 HTML 可創建一個名為“textBox1”的 HtmlInputText 控制項的實例:
<input type="text" runat="server" id="textBox1" value="some text">
下表中列出了 HTML 控制項以及對應的 HTML 標記。
表 1. HTML 控制項標記
控制項 對應的標記
HtmlAnchor <a>
HtmlButton <button>
HtmlSelect <select>
HtmlTextArea <textarea>
HtmlInputButton <input type="button">
HtmlInputCheckBox <input type="check">
HtmlInputRadioButton <input type="radio">
HtmlInputText <input type="text"> 和 <input type="password">
HtmlInputHidden <input type="hidden">
HtmlInputImage <input type="image">
HtmlInputFile <input type="file">
HtmlForm <form>
HtmlImage <img>
HtmlTable <table>
HtmlTableRow <tr>
HtmlTableCell <td>
HtmlGenericControl 任何其它沒有對應控制項的標記,如 <span>、<div> 等。

Web 控制項

ASP+ 框架中的第二組伺服器控制項稱為 Web 控制項。這些控制項位於 System.Web.UI.WebControls 命名空間中,是從 WebControl 基類中直接或間接派生出來的。
Web 控制項中包括傳統的表單控制項,如 TextBox 和 Button ,以及其它更高抽象級別的控制項,如 Calendar 和 DataGrid 控制項。它們提供了一些能夠簡化開發工作的特性,其中包括:
對象模型:WebControl 基類實現了對所有控制項通用的大量屬性,這些屬性包括 ForeColor、BackColor、Font、Enabled 等。。通過這些組件實現的具有明確類型的對象模型將有助於減少編程錯誤。
瀏覽器的自動檢測:Web 控制項能夠自動檢測客戶機瀏覽器的功能,並相應地調整它們所提交的 HTML,從而充分發揮瀏覽器的功能。
數據綁定:在 Web 窗體頁面中,可以對控制項的任何屬性進行數據綁定。此外,還有幾種 Web 控制項可以用來提交數據源的內容。
在 HTML 標記中,Web 控制項會表示為具有命名空間的標記,即帶有前綴的標記。前綴用於將標記映射到運行時組件的命名空間。標記的其餘部分是運行時類自身的名稱。與 HTML 控制項相似,這些標記也必須包含 runat="server" 屬性。下面是一個聲明的示例:
<asp:TextBox id="textBox1" runat="server" Text="[Entry Keywords]"></asp:TextBox>
在上例中,“asp”是標記前綴,會映射到 System.Web.UI.WebControls 命名空間。

文本顯示

Label 控制項用於在頁面中顯示唯讀的靜態文本或數據綁定的文本:
<asp:Label runat="server" Text="Label1" Font-Italic="true"></asp:Label>

輸入控制項

Web 控制項組中包含的一些控制項,允許最終用戶輸入將由伺服器上的頁面處理的數據。
TextBox 控制項用於提供文本編輯能力。與 Label 控制項相似,這裡的文本也可以是數據綁定的。TextBox 控制項支持多種模式,可以用來實現單行輸入、多行輸入和密碼輸入:
<asp:TextBox runat="server" Text="TextBox1"></asp:TextBox>
<asp:TextBox runat="server" Mode="Multiline" Rows="3">
TextBox1
</asp:TextBox>
<asp:TextBox runat="server" Mode="Password"></asp:TextBox>
CheckBox 控制項用於生成能夠在選中和清除這兩種狀態間切換的複選框
<asp:CheckBox runat="server" Text="CheckBox1" Checked="True"></asp:CheckBox>
RadioButton 控制項與 CheckBox 控制項相似,但使用時通常會與其它 RadioButton 控制項組成一組,以提供一組互斥的選項:
<asp:RadioButton runat="server" Text="RadioButton1" GroupName="Group1" Checked="true">
</asp:RadioButton>
<asp:RadioButton runat="server" Text="RadioButton2" GroupName="Group1"></asp:RadioButton>
選擇
下面的四個控制項提供了允許用戶從展示給他們的選項中進行選擇的機制。選項列表的內容既可像下面的示例中那樣是靜態定義的,也可以使用數據源來動態填充。
DropDownList 控制項提供了將選項顯示為下拉式列表,並從中進行單項選擇的能力:
<asp:DropDownList runat="server">
<asp:ListItem Text="Choice1" value="1" selected="true"/>
<asp:ListItem Text="Choice2" value="2"/>
</asp:DropDownList>
ListBox 控制項能夠以可滾動列表的形式顯示選項,並允許從中選擇單個或多個選項:
<asp:ListBox runat="server" SelectionMode="Multiple">
<asp:ListItem Text="Choice1" value="1" selected="true"/>
<asp:ListItem Text="Choice2" value="2"/>
</asp:ListBox>
CheckBoxList 控制項用於創建一組顯示為一列或多列的 Checkbox 控制項:
<asp:CheckBoxList runat="server">
<asp:ListItem Text="Choice1" value="1" selected="true"/>
<asp:ListItem Text="Choice2" value="2" selected="true"/>
</asp:CheckBoxList >
RadioButtonList 控制項與 CheckBoxList 控制項非常相似。不同之處在於,它使用的是一組 RadioButton 控制項以創建一組互斥的選項:
<asp:RadioButtonList runat="server">
<asp:ListItem Text="Choice1" value="1" selected="true"/>
<asp:ListItem Text="Choice2" value="2"/>
</asp:RadioButtonList >

表單提交和回傳

下列控制項用於將帶有用戶輸入值的頁面提交給伺服器,以便用頁面中的代碼對這些值進行處理。這些控制項會在伺服器上產生一個 Click 事件,在代碼中使用。
Button 控制項可以生成一個能夠將頁面再提交給伺服器的三維按鈕:
<asp:Button runat="server" Text="Click Me"></asp:Button>
LinkButton 控制項的行為與 Button 控制項相同。但它在頁面上會顯示為一個超級連結:
<asp:LinkButton runat="server" Text="Click Me"></asp:Button>
ImageButton 控制項也用於提交頁面。它會顯示為一幅圖像,並且能夠提供用戶單擊位置的 x 坐標和 y 坐標:
<asp:ImageButton runat="server" ImageUrl="net.gif"></asp:Button>

導航

HyperLink 控制項用於生成能夠跳轉到其它 URL 的連結:
<asp:HyperLink runat="server" Text="Follow Me" NavigateUrl="MyPage.aspx"></asp:HyperLink>

圖像顯示

Image 控制項能夠在頁面上顯示圖像:
<asp:Image runat="server" ImageUrl="net.gif"></asp:Image>

版面控制項

Panel 控制項常用作簡單的組合控制項以及動態創建的控制項的容器,Panel 控制項通常不具有可見的外觀。
<asp:Panel runat="server"></asp:Panel>
Table 控制項與相關的 TableRowTableCell 控制項相結合,可以用來以編程的方法創建表或表式版面布局:
<asp:Table runat="server" GridLines="Both" BorderWidth="1px">
<asp:TableRow>
<asp:TableCell>[0,0]</asp:TableCell>
<asp:TableCell>[0,1]</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>[1,0]</asp:TableCell>
<asp:TableCell>[1,1]</asp:TableCell>
</asp:TableRow>
</asp:Table>

日期選擇

Calendar 控制項能夠讓用戶瀏覽日期並進行日期選擇(包括選擇日期範圍):
<asp:Calendar runat=server DayNameFormat="FirstLetter" ...>
<property name=SelectedDayStyle>
<asp:TableItemStyle Font-Bold="True" BackColor="#CCCCFF"/>
</property>
...
</asp:Calendar>

列表綁定控制項

列表綁定控制項用於顯示與其相關聯的數據源或列表的內容。它們提供了創建多種自定義及標準版式的能力。 Repeater 控制項是一個列表綁定控制項,沒有預定義外觀的方式顯示數據源的內容:
<asp:Repeater runat="server">
<template name="HeaderTemplate">
<ol>
</template>
<template name="ItemTemplate">
<li>
<a runat="server" href='<%# DataBinder.Eval(Container.DataItem, "SiteURL") %>'>
<%# DataBinder.Eval(Container.DataItem, "SiteName") %>
</a>
</li>
</template>
<template name="FooterTemplate">
</ol>
</template>
</asp:Repeater>

其他功能控制項

DataList 控制項也使用模板來顯示與之綁定的數據源的內容。此外,它還提供了自定義外觀格式和布局的功能:<asp:DataList runat="server">
<template name="ItemTemplate">
<%# DataBinder.Eval(Container.DataItem, "PersonName") %>
...
</template>
...
</asp:DataList>
DataGrid 控制項能夠創建列表版式,用來顯示與之綁定的數據源的內容。它提供了對排序、編輯和分頁的支持。
<asp:DataGrid runat="server" ...>
<property name="Columns">
<asp:BoundColumn HeaderText="ID" .../>
...
</property>
...
</asp:DataGrid>
Validation 控制項
Validation 控制項簡化了對用戶輸入的內容進行驗證的工作。它們能自動為上層瀏覽器生成客戶機端腳本,以便在進行回傳前,在用戶的計算機上進行驗證,從而實現了互動性和對用戶友好性更加良好的頁面。與此同時,它們也能在伺服器上作為第二道防線來完成同樣的工作。“RequiredFieldValidator 控制項用於確保用戶填寫了必須輸入的那些輸入控制項。
RangeValidator 控制項用於檢查用戶輸入的內容在有效取值範圍之內。這對於數字或日期類型的輸入內容十分有用。
CompareValidator 控制項用於對比一個控制項中的輸入內容與另一個控制項中的輸入內容。
RegularExpressionValidator 控制項能夠檢查用戶輸入的內容是否符合作為標準的規範表達式(或字元串模式)。
CustomValidator 控制項允許您提供自定義的伺服器端和客戶機端驗證邏輯。
ValidationSummary 控制項能夠提供由驗證控制項生成的所有錯誤信息的概要。
零雜控制項
AdRotator 控制項用於顯示廣告或橫幅。廣告的有關信息(包括其圖像的 URL)使用 XML 檔案來定義:
<asp:AdRotator runat="server" AdvertisementFile="AdsList.xml"></asp:AdRotator>

HTML 控制項與 Web 控制項的比較

控制項抽象

HTML 控制項不具備任何抽象能力。每種控制項與 HTML 標記都是一一對應的。
Web 控制項創建了更高級別的抽象,它們沒有任何對應的 HTML 標記(如 Calendar 和 DataGrid)。因為它們不直接映射為 HTML 標記,所以 Web 控制項還能夠在適當的場合起到合併功能的作用(例如用一個 TextBox 控制項來代替多個標記)。這種抽象為使用第三方提供的種類豐富的控制項工具箱打開了方便之門。

對象模型

HTML 控制項提供了以 HTML 為中心的對象模型。每種控制項都包括一個屬性集,可以使用該屬性集來控制標記的屬性。這個屬性集使用了字元串名/值對,並且不是強類型的。
在使用 HTML 控制項時,編程方式與使用傳統的 ASP 進行編程十分類似。因而,HTML 控制項提供了一條快捷的移植途徑 — 可以通過添加一個 runat="server" 屬性來將一個標記轉變為一個伺服器控制項。
Web 控制項提供了基於表單的、類似於 Visual Basic 的編程模式。它們也提供了屬性集,但它們的主要目標在於提供一種安全且具有一致性的對象模型。每種 Web 控制項都包含一組標準的屬性,如 ForeColor、BackColor、Font 等。
這種對象模型還在像 Visual Studio NET 這樣的設計工具中提供設計時體驗。

目標瀏覽器

HTML 控制項不會自動檢測請求頁面的瀏覽器的能力,也不會修改它們提供的 HTML。
Web 控制項能夠自動對它們生成的結果進行調整,以確保輸出結果在高級瀏覽器和低級瀏覽器上的工作同樣出色。Web 控制項還能夠針對不同的瀏覽器提供不同的行為,從而充分發揮瀏覽器的潛力。例如,validation 控制項還可以通過客戶端的腳本來創建用於高級瀏覽器的具有高度互動性的頁面。

對生成的 HTML的控制

HTML 控制項允許完全控制所顯示的內容以及傳送到客戶機瀏覽器的內容。
Web 控制項提供了更為豐富的對象模型,以及適應多種瀏覽器的能力。因而,它們沒有提供對輸出結果的相同程度的控制能力。
在開發 Web 應用程式時,可以根據這兩組控制項的能力以及需求來從中進行選擇。還可以選擇在同一頁上混合使用這兩組控制項,使用一種類型的控制項並不妨礙同時使用另一種類型的控制項。

Web 窗體和 RAD 體驗

Web 窗體和伺服器控制項為 Web 頁面和應用程式提供了相同的程式開發(RAD)體驗
工具箱允許將像控制項這樣的可見組件,以及像數據集和其它伺服器組件這樣的不可見組件,拖放到設計工作檯上。
設計工作檯自身能以所見即所得的方式在頁面上顯示控制項。該設計器還有一個相關聯的後台代碼視窗,可以在該視窗中創建並編輯頁面背後的邏輯。通過雙擊組件和控制項,就可以前往這個後台代碼視窗中的相應代碼。Property Browser(屬性瀏覽器)能夠自定義設計工作檯上的組件。
Solution Explorer(解決方案瀏覽器)和項目用來管理和部署會在 Web 應用程式中出現的組件、頁面、後台代碼檔案和其它內容檔案。

相關詞條

熱門詞條

聯絡我們