ASP.NET立即上手教程(8)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP.NET立即上手教程(6)
      表單驗證服務器控件 驗證介紹 網絡形成框架包括一套易用而功能強大的用于驗證的服務器控件,用來檢查輸入表單的錯誤,并且在必要的時候,向用戶顯示提示信息。將驗證控件添加到設計圈套表格

      Asp.net引入了一種新的聲明數據綁定的語法。這種極其靈活的語法允許開發者不僅綁定數據源,而且可以綁定簡單的屬性、集合、表達式、甚至是調用方法所返回的結果。下面的列表顯示了這種新語法的一些例子:
      簡單屬性

      Customer: <%# custID %>

      集合

      Orders: <asp:ListBox id="List1" datasource='<%#

      myArray %>' runat="server">

      表達式

      Contact: <%# ( customer.First Name " " customer.LastName

      ) %>

      方法結果

      Outstanding Balance: <%# GetBalance(custID) %>

      盡管這種語法看上去和asp中Response.Write的簡寫方式<%= %>很類似,但他們的運行機理卻大不相同。Response.Write的簡寫語法在頁面處理的時候求值,而asp.net數據綁定語法只有當調用DataBind方法的時候才求值。

      DataBind是Page和所有服務器控件的一個方法。當你對一個父控件調用DataBind方法的時候,他所包含的子控件都會調用DataBind方法。比如執行DataList1.DataBind(),DataList模板中的所有控件都引用了DataBind方法。在Page調用DataBind方法--- Page.DataBind()或者簡單的DataBind() ---導致頁面上所有的數據綁定表達式都會被求值。DataBind經常在Page_Load事件中被調用,比如下面的例子:

      protected void Page_Load(Object Src, EventArgs E) {
      DataBind();
      }

      你幾乎可以在.aspx頁面中聲明部分的任何地方使用數據綁定表達式,在運行時提供它所計算的預期的數據類型。當求值以后,簡單的屬性、表達式以及上例中的方法,將向用戶顯示文本。在這些情況下,數據綁定表達式必須求出一個string類型的值。在集合的例子中,數據綁定表達式所求值的類型,對于ListBox的DataSource 屬性來說是有效的。你會發現,在數據綁定表達式中為了得到期望的結果,強制轉換結果值的類型,是很有必要的。例如,如果count是一個整數:

      Number of Records: <%# count.ToString() %>

      綁定簡單屬性

      Asp.net數據綁定語法支持綁定頁面的公共變量和屬性,以及頁面上其他控件的屬性。

      下面的例子說明了綁定到頁面的公共變量和簡單屬性。注意這些值在調用DataBind()之前已被初始化。

      綁定集合和列表

      列表服務器控件,如DataGrid、 ListBox 和 HTMLSelect,使用集合作為數據源。下面的例子說明綁定到常用的CLR 集合類型。這些控件只能綁定到支持IEnumerable, ICollection, 或 IListSource 接口的集合。通常,您可以綁定到ArrayList、 Hashtable、 DataView 和DataReader.

      很多時候,在綁定到頁面或控制之前,你可能會操作這些數據。

      DataBinder.Eval方法

      Asp.net框架提供了一個靜態方法DataBinder.Eval,可以計算后期數據綁定表達式的值,并可以將結果任意格式化為字符串。DataBinder.Eval是很方便的,他排除了許多開發人員必須作的(通過強制改變值的類型來得到預期的數據類型)顯式轉換。尤其是在帶有模板列表的數據綁定控件中,因為經常需要顯式轉換數據行和數據字段,所以它特別有用。

      仔細看下面的代碼,整數將被顯示為貨幣型字符串。使用標準的asp.net數據綁定語法,為了得到數據字段IntegerValue,你必須首先顯式轉換數據行的類型,然后作為String.Format方法的參數才能得到結果

      <%# String.Format("{0:c}", ((DataRowView)Container.DataItem)["IntegerValue"]) %>

      這樣的語法實在錯綜復雜的難以記憶。比較而言,DataBinder.Eval 就很簡單了。它帶有三個參數:數據項的命名容器、數據字段名稱和格式化字符串。 在模板列表如DataList、DataGrid、或 Repeater,命名容器總是Container.DataItem。 Page 是另一個可以被DataBinder.Eval使用的命名容器。

      <%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>

      格式化字符串參數是可選的。如果忽略參數,DataBinder.Eval 返回對象類型的值,就象下面的代碼這樣:

      <%# (bool)DataBinder.Eval(Container.DataItem, "BoolValue") %>

      很重要的一點需要注意:由于受后期綁定影響,DataBinder.Eval與標準的數據綁定語法相比,在執行效率上有明顯的差別。因此有選擇地使用DataBinder.Eval,特別是不需要對字符串進行格式化的時候。

      分享:ASP.NET立即上手教程(5)
      應用樣式到HTML服務器控件 WEB是一個靈活的用戶接口環境,不同的站點在視覺和感覺上極盡變化之能事。層疊式樣式表(CSS)的廣泛應用,極大的豐富了WEB的設計。所有ASP.NET的HTML服務器控件和W

      來源:模板無憂//所屬分類:.Net教程/更新時間:2008-08-22
      相關.Net教程