<%# %> 语法
ASP.NET 介绍了一种新的声明性语法 <%# %>。该语法是在 .aspx 页中使用数据绑定的基础。所有数据绑定表达式都必须包含在这些字符中。下面的列表包含从多个源进行简单数据绑定的示例:
简单属性(用于客户的语法):
<%# custID %>
集合(用于订单的语法):
<asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
表达式(用于联系人的语法):
<%# ( customer.First Name + " " + customer.LastName ) %>
方法结果(用于未结清余额的语法):
<%# GetBalance(custID) %>
在前面的示例中,<%# %> 内联标记用于指示将把特定数据源中的信息放在 .aspx 页中的什么位置。以下数据绑定示例使用 TextBox Web 服务器控件:
<asp:textbox id=txt text="<%# custID %>" runat=server />
Page.DataBind() versus Control.DataBind()
确定特定数据源并设置 .aspx 页上的对象之后,您必须将数据绑定到数据源。您可以使用 Page.DataBind 或 Control.DataBind 方法将数据绑定到数据源。
这两种方法的使用方式很相似。主要差别在于:调用 Page.DataBind 方法后,所有数据源都将绑定到它们的服务器控件。在显式调用 Web 服务器控件的 DataBind 方法或在调用页面级的 Page.DataBind 方法之前,不会有任何数据呈现给控件。通常,可以从 Page_Load 事件调用 Page.DataBind(或 DataBind)。
数据绑定表达式深入
数据绑定表达式包含在 <%# 和 %> 分隔符之内,并使用 Eval 和 Bind 函数。Eval 函数用于定义单向(只读)绑定。Bind 函数用于定义双向(可更新)绑定。除了通过在数据绑定表达式中调用 Eval 和 Bind 方法执行数据绑定外,还可以调用 <%# 和 %> 分隔符之内的任何公共范围代码,以在页面处理过程中执行该代码并返回一个值。
调用控件或 Page 类的 DataBind 方法时,会对数据绑定表达式进行解析。对于有些控件,如 GridView、DetailsView 和 FormView 控件,会在控件的 PreRender 事件期间自动解析数据绑定表达式,不需要显式调用 DataBind 方法。
下面的代码示例演示如何将数据绑定表达式与 ItemTemplate 中的 FormView 控件结合使用。
<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>
新闻热点
疑难解答
图片精选