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 public static object Eval<T>(this Page page, Func<T, object> 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> <form runat="server"> </body> |
补充:asp.net教程,.Net开发