首页 > 编程 > .NET > 正文

ASP.NET框架中的数据绑定概要与数据绑定表达式的使用

2024-07-10 12:47:04
字体:
来源:转载
供稿:网友

<%# %> 语法

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>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表