<%# %> 語法
ASP.NET 介紹了一種新的聲明性語法 <%# %>。該語法是在 .aspx 頁(yè)中使用數(shù)據(jù)綁定的基礎(chǔ)。所有數(shù)據(jù)綁定表達(dá)式都必須包含在這些字符中。下面的列表包含從多個(gè)源進(jìn)行簡(jiǎn)單數(shù)據(jù)綁定的示例:
簡(jiǎn)單屬性(用于客戶的語法):
<%# custID %>
集合(用于訂單的語法):
<asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
表達(dá)式(用于聯(lián)系人的語法):
<%# ( customer.First Name + " " + customer.LastName ) %>
方法結(jié)果(用于未結(jié)清余額的語法):
<%# GetBalance(custID) %>
在前面的示例中,<%# %> 內(nèi)聯(lián)標(biāo)記用于指示將把特定數(shù)據(jù)源中的信息放在 .aspx 頁(yè)中的什么位置。以下數(shù)據(jù)綁定示例使用 TextBox Web 服務(wù)器控件:
<asp:textbox id=txt text="<%# custID %>" runat=server />
Page.DataBind() versus Control.DataBind()
確定特定數(shù)據(jù)源并設(shè)置 .aspx 頁(yè)上的對(duì)象之后,您必須將數(shù)據(jù)綁定到數(shù)據(jù)源。您可以使用 Page.DataBind 或 Control.DataBind 方法將數(shù)據(jù)綁定到數(shù)據(jù)源。
這兩種方法的使用方式很相似。主要差別在于:調(diào)用 Page.DataBind 方法后,所有數(shù)據(jù)源都將綁定到它們的服務(wù)器控件。在顯式調(diào)用 Web 服務(wù)器控件的 DataBind 方法或在調(diào)用頁(yè)面級(jí)的 Page.DataBind 方法之前,不會(huì)有任何數(shù)據(jù)呈現(xiàn)給控件。通常,可以從 Page_Load 事件調(diào)用 Page.DataBind(或 DataBind)。
數(shù)據(jù)綁定表達(dá)式深入
數(shù)據(jù)綁定表達(dá)式包含在 <%# 和 %> 分隔符之內(nèi),并使用 Eval 和 Bind 函數(shù)。Eval 函數(shù)用于定義單向(只讀)綁定。Bind 函數(shù)用于定義雙向(可更新)綁定。除了通過在數(shù)據(jù)綁定表達(dá)式中調(diào)用 Eval 和 Bind 方法執(zhí)行數(shù)據(jù)綁定外,還可以調(diào)用 <%# 和 %> 分隔符之內(nèi)的任何公共范圍代碼,以在頁(yè)面處理過程中執(zhí)行該代碼并返回一個(gè)值。
調(diào)用控件或 Page 類的 DataBind 方法時(shí),會(huì)對(duì)數(shù)據(jù)綁定表達(dá)式進(jìn)行解析。對(duì)于有些控件,如 GridView、DetailsView 和 FormView 控件,會(huì)在控件的 PreRender 事件期間自動(dòng)解析數(shù)據(jù)綁定表達(dá)式,不需要顯式調(diào)用 DataBind 方法。
下面的代碼示例演示如何將數(shù)據(jù)綁定表達(dá)式與 ItemTemplate 中的 FormView 控件結(jié)合使用。
<asp:FormView ID="FormView1" DataSourceID="SqlDataSource1" DataKeyNames="ProductID" RunAt="server"> <ItemTemplate> <table> <tr><td align="right"><b>Product ID:</b></td> <td><%# Eval("ProductID") %></td></tr> <tr><td align="right"><b>Product Name:</b></td> <td><%# Eval("ProductName") %></td></tr> <tr><td align="right"><b>Category ID:</b></td> <td><%# Eval("CategoryID") %></td></tr> <tr><td align="right"><b>Quantity Per Unit:</b></td><td><%# Eval("QuantityPerUnit") %></td></tr> <tr><td align="right"><b>Unit Price:</b></td> <td><%# Eval("UnitPrice") %></td></tr> </table> </ItemTemplate> </asp:FormView>
新聞熱點(diǎn)
疑難解答
圖片精選