Eval( " ")和Bind( " ") 这两种一个单向绑定,一个双向绑定
bind是双向绑定,但需数据源可更改才能用
ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩短的Eval语法与DataBinder.Eval的不同点在于,Eval会根据最近的容器对象(例如DataListItem)的DataItem属性来自动地解析字段,而DataBinder.Eval需要使用参数来指定容器。由于这个原因,Eval只能在数据绑定控件的模板中使用,而不能用于Page(页面)层。当然,ASP.NET 2.0页面中仍然支持DataBinder.Eval,你可以在不支持简化的Eval语法的环境中使用它。
下面的例子演示了如何使用新的简化的Eval数据绑定语法绑定到DataList数据项模板(ItemTemplate)中的Image、Label和HyperLink控件。
<asp:DataList ID= "DataList1 " RepeatColumns= "5 " Width= "600 " runat= "server " DataSourceID= "ObjectDataSource1 ">
<ItemTemplate>
<asp:HyperLink ID= "HyperLink1 " runat= "server " NavigateUrl= '<%# Eval( "PhotoID ", "PhotoFormViewPlain.aspx?ID={0} ") %> '>
<asp:Image ID= "Image1 " Runat= "server " ImageUrl= '<%# Eval( "FileName ", "images/thumbs/{0} ") %> ' /></asp:HyperLink>
<asp:Label ID= "CaptionLabel " runat= "server " Text= '<%# Eval( "Caption ") %> ' />
</ItemTemplate>
</asp:DataList><br />
<asp:ObjectDataSource ID= "ObjectDataSource1 " runat= "server " TypeName= "DataComponentTableAdapters.PhotosTableAdapter " SelectMethod= "GetPhotosForAlbum ">
数据绑定也可以作为控件的主题定义(theme definition)的一部分,这样我们就可以通过改变主题来随意地改变模板化控件的布局和外观。但是Theme(主题)模板中只能使用Eval(或者后面讨论的Bind)。绑定到任意的用户代码是被禁止的。
分享到:
相关推荐
<%# DataBinder.Eval(Container, "DataItem.字段名") %> ``` 其中,`Container.DataItem` 表示当前项的数据对象,`"字段名"` 是要访问的数据源中的字段。`Container` 对象属于 `System.ComponentModel` 命名空间,...
<%# Bind(“Subject”) %> //绑定字段<%# Container.DataItemIndex + 1%> //实现自动编号<%# DataBinder.Eval(Container.DataItem, “[n]”...# DataBinder.Eval(Container, “DataItem.Colum
但在大量数据处理或性能敏感的应用中,应考虑使用`Container.DataItem["FieldName"]`或`((YourDataType)Container.DataItem).FieldName`,因为它们在编译时就确定了数据字段,比DataBinder.Eval运行时解析更高效。...
7. Eval()方法可以显示日期,只显示年月日,例如:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%> 8. Eval()方法可以显示货币样式,例如:<%#Container.DataItem("price","{0:¥#,#...
本文将深入探讨两种常见的数据绑定方法:`DataBinder.Eval`和`Eval`,以及它们之间的区别。 `Eval`方法是在ASP.NET 2.0引入的简化数据绑定语法,它使得模板中的数据绑定更加简洁。`Eval`方法可以直接通过字段名来...
d> 可能感兴趣的人:"> ... <%# DataBinder.Eval(Container.DataItem, "Name")%> <%# DataBinder.Eval(Container.DataItem, "Sex")%> <%# DataBinder.Eval(Container.DataItem, "myEmail")%> </td>
<td><%#DataBinder.Eval(Container.DataItem,"Activation")%> <td><%#DataBinder.Eval(Container.DataItem, "DealerId")%> <td><%#DataBinder.Eval(Container.DataItem, "UserId")%> <td><%#DataBinder.Eval...
ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩短...
DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}") 7.显示时间所有部分,包括:年月日时分秒 <asp:BoundColumn DataField="收款时间" HeaderText="收款时间" DataFormatString="{0:yyyy-MM-dd HH24:mm...
<%# DataBinder.Eval(Container.DataItem, "FieldName") %> ``` - **参数解释**: - **Container.DataItem**: 当前容器(如GridView或Repeater控件)的数据项。 - **"FieldName"**: 要绑定的数据字段名称。 - ...
<%#DataBinder.Eval(Container,"DataItem.Name")%> ``` 而在ASP.NET 2.0中,同样的功能可以通过更简洁的语法实现: ``` <%#Eval("Name")%> ``` 这种简化的实现方式背后依赖的是`TemplateControl`类中的`Eval`方法,...
这种简化后的语法与之前的`DataBinder.Eval(Container.DataItem, "FieldName")`相比,减少了参数的传递,使得代码更为简洁。 **示例**: ```html ...
<%# Bind(“Subject”) %> //绑定字段 <%# Container.DataItemIndex + 1%> //实现自动编号 <%# DataBinder.Eval(Container.DataItem, “[n]”)...# DataBinder.Eval(Container, “DataItem
ASP.NET 常用语句 ...<%# System.DateTime.Parse(DataBinder.Eval(Container.DataItem, "begtime").ToString()).ToShortDateString()%> 该语句用于去除时间中的秒数,仅显示日期部分。 6. 标题带链接 ...
<%# System.DateTime.Parse(DataBinder.Eval(Container.DataItem, "begtime").ToString()).ToShortDateString() %> ``` **解析:** 这里使用`DataBinder.Eval`方法获取`DataItem`中的`begtime`属性值,并将其转换为`...