当前位置:编程学习 > C#/ASP.NET >>

asp.net中数据绑定几种方法介绍

数据绑定表达式包含在 <%# 和 %> 分隔符之内,并使用 Eval 和 Bind 函数。Eval 函数用于定义单向(只读)绑定。Bind 函数用于定义双向(可更新)绑定。除了通过在数据绑定表达式中调用 Eval 和 Bind 方法执行数据绑定外,还可以调用 <%# 和 %> 分隔符之内的任何公共范围代码,以在页面处理过程中执行该代码并返回一个值。

调用控件或 Page 类的 DataBind 方法时,会对数据绑定表达式进行解析。对于有些控件,如 GridView、DetailsView 和 FormView 控件,会在控件的 PreRender 事件期间自动解析数据绑定表达式,不需要显式调用 DataBind 方法
 

在ASP.NET 中数据绑定有两种类型:单值绑定和多值绑定

 

二者的共同点:都不需要和ADO.NET同时工作

不同点: 单值绑定可以把一个变量,一个属性或者一个表达式动态的插入到一个页面中,可以用来帮助创建数据控件的模版。

多值绑定可以显示一个表的所用内容需要支持他的特殊控件(包含DataSource属性)

 

单值绑定:

常用的四种表达式:

 代码如下 复制代码
<%=XX%>, 内联方式 ,可以引用C#代码
<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>

<%#XXX%>, 引用.cs 文件中的代码字段

我已添加了扩展方法版本。喜欢扩展方法这种空降兵的感觉。

现在只要添加一个static的帮助类,名字随你喜欢

 代码如下 复制代码

public static class Helper
{
   static object ExpHelper<TEntity, TResult>(Page page, Func<TEntity, TResult> func)
   {
      var itm = page.GetDataItem();
      return func((TEntity)itm);
   }

   public static object Eval<T>(this Page page, Func<T, object> func)
   {
      return ExpHelper<T, object>(page, func);
   }
}


在页面中就可以

 代码如下 复制代码
<%#this.Eval<Student>(_ => _.Name + "(" + _.Age + ")")%>


<%# Eval(xxx)%> ,需要绑定数据源
Eval 方法可计算数据绑定控件(如 GridView、DetailsView 和 FormView 控件)的模板中的后期绑定数据表达式。在运行时,Eval 方法调用 DataBinder 对象的 Eval 方法,同时引用命名容器的当前数据项。命名容器通常是包含完整记录的数据绑定控件的最小组成部分,如 GridView 控件中的一行。因此,只能对数据绑定控件的模板内的绑定使用 Eval 方法。


下面的控件是支持数据绑定的列表控件:

asp:RadioButtonList
asp:CheckBoxList
asp:DropDownList
asp:Listbox
通常在一个或多个 asp:ListItem 控件中定义以上每个控件中的可选项目,类似这样:

 代码如下 复制代码

<html>
<body>

<form runat="server">
<asp:RadioButtonList id="countrylist" runat="server">
<asp:ListItem value="C" text="China" />
<asp:ListItem value="S" text="Sweden" />
<asp:ListItem value="F" text="France" />
<asp:ListItem value="I" text="Italy" />
</asp:RadioButtonList>
</form>

</body>
</html>

补充:asp.net教程,.Net开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,