国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 12:50:16
字體:
來源:轉載
供稿:網友

推薦: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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 谢通门县| 太仆寺旗| 喀喇| 虎林市| 积石山| 咸丰县| 江达县| 绵阳市| 南宁市| 兴安县| 金山区| 蒲江县| 辽源市| 郁南县| 曲松县| 克东县| 阿合奇县| 上杭县| 惠来县| 祥云县| 吴川市| 晋宁县| 阿拉尔市| 仁寿县| 平江县| 砚山县| 余姚市| 通化县| 英德市| 中牟县| 上思县| 白河县| 海晏县| 佛冈县| 澄城县| 门头沟区| 政和县| 蛟河市| 申扎县| 新丰县| 仪征市|