本文討論了下列數(shù)據(jù)綁定主題: 數(shù)據(jù)綁定概要 <%# %> 語法 ASP.NET 引入了一種新的聲明語法 <%# %>。該語法是在 .aspx 頁中使用數(shù)據(jù)綁定的基礎(chǔ)。所有數(shù)據(jù)綁定表達(dá)式都必須包含在這些字符中。下面的列表包含從多個(gè)源進(jìn)行簡(jiǎn)單數(shù)據(jù)綁定的示例:
·
<%# custID %>
·
<asp:ListBox id="List1"
datasource='<%# myArray %>' runat="server">
·
<%# ( customer.First Name + "
" + customer.LastName ) %>
·
<%# GetBalance(custID) %> 在前面的示例中,<%# %> 內(nèi)聯(lián)標(biāo)記用于指示將把特定數(shù)據(jù)源中的信息放在 .aspx 頁中的什么位置。以下數(shù)據(jù)綁定示例使用 TextBox Web
服務(wù)器控件: <asp:textbox id=txt text="<%# custID %>"
runat=server /> 有關(guān)數(shù)據(jù)綁定語法的詳細(xì)信息,請(qǐng)參閱以下 .NET Framework 軟件開發(fā)工具包 (SDK) 文檔: 數(shù)據(jù)綁定表達(dá)式語法 Page.DataBind() 與 Control.DataBind() 為 .aspx 頁上的對(duì)象確定并設(shè)置了特定數(shù)據(jù)源后,必須將數(shù)據(jù)綁定到這些數(shù)據(jù)源。您可以使用Page.DataBind 或 Control.DataBind 方法將數(shù)據(jù)綁定到數(shù)據(jù)源。 列表控件模板中的綁定 您可以使用列表控件中的模板來綁定和自定義數(shù)據(jù)源的各個(gè)記錄。本節(jié)提供了三種可用于執(zhí)行此操作的方法。 DataBinder.Eval 方法 當(dāng)數(shù)據(jù)源處理從數(shù)據(jù)庫返回的數(shù)據(jù)時(shí),它可能包含很多份信息。您可以使用通用的 DataBinder.Eval方法返回?cái)?shù)據(jù)。在以下代碼示例中,“au_id”字段是從容器對(duì)象的數(shù)據(jù)源中返回的: <%# DataBinder.Eval(Container.DataItem,"au_id")
%> 有關(guān) DataBinder.Eval 方法的詳細(xì)信息,請(qǐng)參閱以下 .NET Framework SDK 文檔: DataBinder.Eval 方法 顯式轉(zhuǎn)換 如果您需要更多控件,可使用顯式轉(zhuǎn)換。顯式轉(zhuǎn)換使用類型轉(zhuǎn)換關(guān)鍵字。這些關(guān)鍵字充當(dāng)函數(shù),而由編譯器生成內(nèi)聯(lián)代碼。因此,執(zhí)行速度要比通過調(diào)用函數(shù)稍快。下列代碼示例使用顯式轉(zhuǎn)換: // DataTable as the DataSource <%#
((System.Data.DataRowView)Container.DataItem)["au_id"] %> // DataReader as the DataSource <%#
((System.Data.Common.DbDataRecord)Container.DataItem)["au_id"] %> // DataReader as the DataSource <%# ((System.Data.Common.DbDataRecord)Container.DataItem)[0]
%> ItemDataBound 事件 您還可以使用控件的 ItemDataBound 事件來綁定數(shù)據(jù)。當(dāng)將某個(gè)項(xiàng)目的數(shù)據(jù)綁定到控件時(shí),就會(huì)發(fā)生該事件。 |
|