天天看點

ASP.NET2.0控件一覽

ASP.NET2.0控件一覽

相比ASP.NET1.X,ASP.NET2.0帶來很多的改變,本系列将從控件的方面來看看2.0的控件方面的各種新增和改進.本系列文章假設讀者已經對1.x的控件比較的熟悉,因為2.0和1.x很多相同的地方将不會涉及,着重談談不一樣的地方,友善大家對ASP.NET2.0的控件有進一步的了解和更快的掌握.

  ASP.NET 2.0 引入了許多新的伺服器控件,能夠為資料通路、登入安全、向導導航、菜單、樹視圖、門戶等提供功能強大的聲明性支援。這些控件中,許多都利用了 ASP.NET 的核心應用程式服務,用于資料通路、成員資格與角色,以及個性化設定等方案。

  目前,2.0的控件分為以下幾個方面:

  标準控件、資料控件、驗證控件、登入控件、導航控件、Web部件控件、HTML控件、

  由于伺服器控件繼承自Control或WebControl類,是以2.0的控件統一多了2個重要的屬性:EnableTheming(訓示控件是否可以有主題),SkinID(提供控件外觀的控件外觀的SkinId).還有1個很有用的方法:Focus(為控件設定輸入焦點).

  讓我們從标準控件談起,第一篇來看看标準控件中1.X已有的控件有哪些變化.

  Label:基本無變化.

  Literal:Mode屬性:确定是轉換文本還是将文本編碼,可以将 Mode 屬性設定為以下值:Transform(預設值):添加到控件中的任何标記都将進行轉換,以适應請求浏覽器的協定。PassThrough:添加到控件中的任何标記都将按原樣呈現在浏覽器中。Encode: 添加到控件中的任何标記都将使用 HtmlEncode 方法進行編碼,該方法将把 HTML 編碼轉換為其文本表示形式。例如, 标記将呈現為 。當希望浏覽器顯示而不解釋标記時,編碼将很有用。編碼對于安全也很有用,有助于防止在浏覽器中執行惡意标記,顯示來自不受信任的源的字元串時推薦使用此設定。

  TextBox:AutoCompleteType屬性:記憶用戶端輸入的内容類型.通過這個屬性可以記憶各種類型輸入,比如Email.最大的好處便是隻記憶想要儲存的類型.

  Button:OnClientClick屬性:在用戶端OnClick上執行的用戶端腳本.這個屬性的加入,大大的友善了程式開發,不用以前那樣通過代碼添加屬性的方式來實作用戶端腳本.PostBackUrl屬性:擷取或設定單擊 Button 控件時從目前頁發送到的網頁的URL。很有用的1個屬性,通過這個屬性使您可以使用 Button 控件執行跨頁發送。預設為空,即傳回本頁.UseSubmitBehavior屬性:屬性設定為 true 以使 Button 控件使用基于用戶端腳本的回發,為false便是基于ASP.NET 回發機制。(調用__doPostBack函數實作)

  LinkButton,ImageButton:同Button類似,隻是沒有UseSubmitBehavior屬性.

  HyperLink:ImageUrl屬性:顯示圖檔的Url.設定該屬性後便是圖檔連結.

  ASP.NET2.0中繼承自ListControl類的控件,都具有1個很有用的屬性AppendDataBoundItems(擷取或設定一個值,該值訓示是否在綁定資料之前清除清單項).但此項屬性設定為True的時候,便可以實作清單項與綁定項同時存在.比如:"請選則",就可以設定為清單項,綁定資料後出現在第一項,這樣便不用在背景代碼增加預設項了,非常的友善.

  DropDownList:增加上述屬性,其餘變化不大.

  ListBox:Row屬性:顯示可見行的數目.

  CheckBox,CheckBoxList:基本無變化

  RadioButton,RadioButtonList:基本無變化

  Panel:ScrollBars屬性:面闆滾動條的外觀.(把GridView放入面闆上,可以很簡單的實作帶滾動條的GridView)GroupingText 屬性:面闆控件中包含的子控件的标題文本。預設值為空字元串 ("")DefaultButton屬性:面闆的預設按鈕.可将 TextBox 控件和 Button 控件放置在 Panel 控件中,然後通過将 Panel 控件的 DefaultButton 屬性設定為面闆中某個按鈕的 ID 來定義一個預設的按鈕。如果使用者在面闆内的文本框中進行輸入時按 Enter,這與使用者單擊特定的預設按鈕具有相同的效果。這有助于使用者更有效地使用項目窗體。

  其餘控件基本上無變化.

  小結:

  本文就ASP.NET1.X和ASP.NET2.0都存在的标準控件做了個比較,寫出了2.0下該類控件的變化,主要是簡單的介紹,便于有1.X開發基礎的程式員能夠快速的掌握2.0下的原有的控件.具體的例子請參考微軟的MSDN.

  BulletedList:該控件建立一個無序或有序(編号的)的項清單,它們分别呈現為 HTML ul 或 ol 元素。可以指定項、項目符号或編号的外觀;靜态定義清單項或通過将控件綁定到資料來定義清單項;也可以在使用者單擊項時作出響應。

  BulletedList 與 ListBox、DropDownList 及其他 ASP.NET 清單控件派生自相同的 ListControl 類,是以其用法與這些控件的用法類似。相信大家一定可以迅速上手,接下來談談特别的幾個屬性.BulletImageUrl屬性:擷取或設定為 BulletedList 控件中的每個項目符号顯示的圖像的路徑。BulletStyle屬性:指定項目符号樣式。具有以下幾種樣式:

      成員名稱     說明

    Circle     項目符号樣式為空心圓。

    CustomImage     項目符号樣式為自定義圖像。

    Disc     項目符号樣式為實心圓。

    LowerAlpha     項目符号樣式為小寫字母(a、b、c...)。

    LowerRoman     項目符号樣式為小寫羅馬數字(i、ii、iii...)。

    NotSet     不設定項目符号樣式。呈現 BulletedList 控件的浏覽器将決定要顯示的項目符号樣式。

    Numbered     項目符号樣式為數字(1、2、3...)。

    Square     項目符号樣式為實心四方形。

    UpperAlpha     項目符号樣式為大寫字母(A、B、C...)。

    UpperRoman     項目符号樣式為大寫羅馬數字(I、II、III...)。

  DisplayMode屬性:項目符号清單的顯示模式.

  通過該屬性,我們可以設定項目以Text,LinkButton,HyperLink三種方式來顯示.

  Text:文本模式顯示.

  HyperLink值允許将清單内容顯示為超連結。單擊超連結時,它定位到相應的URL。使用Value 屬性指定超連結定位到的 URL。選擇HyperLink 模式後,Target屬性可以設定打開的方式.

  LinkButton 字段允許将清單内容顯示為連結。當單擊連結按鈕時,使用 BulletedList.Click 事件回發到伺服器。

  HiddenField:

  提供了一種在頁面中存儲資訊但不顯示資訊的方法。例如,可以在 HiddenField 控件中存儲使用者首選項設定。若要将資訊放入 HiddenField 控件中,請在兩次回發之間将其 Value 屬性設定為要存儲的值。

  FileUpload:

  上傳控件,相當于,用法和1.X下轉化為伺服器控件的差不多.

  MultiView和View:

  MultiView和View伺服器控件用作其他控件和标記的容器,并提供了一種可友善地顯示資訊的替換視圖的方式。

  使用MultiView和View控件執行如下任務:

    * 可以使用MultiView和View控件作為建立多個Panel控件的一種替代方法。

    * 建立多頁窗體。MultiView 和View控件可以提供與Wizard控件相似的行為。Wizard控件尤其适合于建立使用者分步驟填寫的窗體。Wizard控件還支援更多内置 UI 元素(如頁眉和頁腳)、“上一頁”和“下一頁”按鈕以及模闆。如果要建立根據條件(而不是按順序)更改的顯示,或者如果不需要 Wizard 控件支援的額外功能,則可以使用 MultiView 控件來代替 Wizard。

  從上面的介紹可以知道,MultiView和View,Wizard控件的出來可以使我們更快更簡單的建立出多步驟的操作.

  MultiView和View的用法非常的簡單,相當于Panel,隻需要把任意的View放入MultiView中即可.MultiView的ActiveView屬性可以設定初始的顯示View的Index.

  接下來關鍵的是怎樣實作多個View之間的切換,我們有兩種方法可以實作.

  第一種方法:

  可以向每個 View 控件添加一個按鈕控件(Button、LinkButton 或 ImageButton)。然後可以将每個按鈕的 CommandName 和 CommandArgument 屬性設定為保留值以使 MultiView 控件移動到另一個視圖。

  下表列出了保留的 CommandName 值和相應的 CommandArgument 值。

  CommandName 值     CommandArgument 值

  NextView

  (沒有值)

  PrevView

  (沒有值)

  SwitchViewByID要切換到的 View 控件的 ID。

  SwitchViewByIndex要切換到的 View 控件的索引号。

  下面的示例顯示一個包含三個 View 控件的 MultiView 控件。每個 View 控件包含一個移動到特定 View 控件的 Button 控件。

  示例代碼

    <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">

   <asp:View ID="View1" runat="server">

    View 1<br />

    <br />

    <asp:Button ID="Button1" runat="server"

      CommandArgument="View2"

      CommandName="SwitchViewByID"

      Text="Go to View2" />

  </asp:View>

  <asp:View ID="View2" runat="server">

    View 2<br />

    <br />

    <asp:Button ID="Button2" runat="server"

      CommandArgument="View3"

      CommandName="SwitchViewByID"

      Text="Go to View 3" />

  </asp:View>

  <asp:View ID="View3" runat="server">

    View 3<br />

    <br />

    <asp:Button ID="Button3" runat="server"

      CommandArgument="View1"

      CommandName="SwitchViewByID"

      Text=Go to View 1" />

  </asp:View>

</asp:MultiView></div>

  這種方法可以很簡單的不需要代碼實作View的切換.

  第二種方法就是代碼控制的方式.

  MultiView.ActiveViewIndex和MultiView.SetActiveView方法可以實作.

  它們的差別就是:MultiView.ActiveViewIndex方法是設定View的索引值.View 控件的索引是由它在 MultiView 控件中的聲明順序确定的。例如,在 MultiView 控件中聲明的第一個 View 控件的索引為 0。

MultiView.SetActiveView方法是将指定的 View 控件設定為 MultiView 控件的活動視圖。

繼續閱讀