DataGrid控件,在ItemTemplate显示数据时,
DataBinder.eval_r(Container.DataItem,"Name")和Container.DataItem("Name")有什么区别?
DataBinder是System.Web里面的一个静态类,它提供了Eval方法用于简化数据绑定表达式的编写,但是它使用的方式是通过Reflection等开销比较大的方法来达到易用性,因此其性能并不是最好的。
Container则根本不是任何一个静态的对象或方法,它是ASP.NET页面编译器在数据绑定事件处理程序内部声明的局部变量,其类型是可以进行数据绑定的控件的数据容器类型(如在Repeater内部的数据绑定容器叫RepeaterItem),在这些容器类中基本都有DataItem属性.
因此你可以写Container.DataItem,这个属性返回的是你正在被绑定的数据源中的那个数据项。如果你的数据源是DataTable,则这个数据项的类型实际是DataRowView.效率高!
DataBinder通常使用的方法
<%# DataBinder.eval_r(Container.DataItem, "ColumnName") %>
<%# DataBinder.eval_r(Container.DataItem, "ColumnName", null) %>
<%# DataBinder.eval_r(Container, "DataItem.ColumnName", null) %>
Container通常使用的方法
<%# ((DataRowView)Container.DataItem)["ColumnName"] %>
<%# ((DataRowView)Container.DataItem).Row["ColumnName"] %>
<%# ((DataRowView)Container.DataItem)["adtitle"] %>
<%# ((DataRowView)Container.DataItem)[n] %>
<%# ((DbDataRecord)Container.DataItem)[0] %>
<%# (((自定义类型)Container.DataItem)).属性.ToString() %>//如果属性为字符串类型就不用ToString()了
分享到:
相关推荐
<%# DataBinder.Eval(Container, "DataItem.字段名") %> ``` 其中,`Container.DataItem` 表示当前项的数据对象,`"字段名"` 是要访问的数据源中的字段。`Container` 对象属于 `System.ComponentModel` 命名空间,...
但在大量数据处理或性能敏感的应用中,应考虑使用`Container.DataItem["FieldName"]`或`((YourDataType)Container.DataItem).FieldName`,因为它们在编译时就确定了数据字段,比DataBinder.Eval运行时解析更高效。...
<%# Bind(“Subject”) %> //绑定字段<%# Container.DataItemIndex + 1%> //实现自动编号<%# DataBinder.Eval(Container.DataItem, “[n]”...# DataBinder.Eval(Container, “DataItem.Colum
相比之下,`DataBinder.Eval`是更通用的方法,它需要显式提供当前数据容器的引用,即`Container.DataItem`,以及需要绑定的字段名,如`DataBinder.Eval(Container.DataItem, "FieldName")`。这种方法允许在页面级别...
7. Eval()方法可以显示日期,只显示年月日,例如:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%> 8. Eval()方法可以显示货币样式,例如:<%#Container.DataItem("price","{0:¥#,#...
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, "FieldName")`相比,减少了参数的传递,使得代码更为简洁。 **示例**: ```html ...
ASP.NET 常用语句 ...<%# System.DateTime.Parse(DataBinder.Eval(Container.DataItem, "begtime").ToString()).ToShortDateString()%> 该语句用于去除时间中的秒数,仅显示日期部分。 6. 标题带链接 ...
<%# Bind(“Subject”) %> //绑定字段 <%# Container.DataItemIndex + 1%> //实现自动编号 <%# DataBinder.Eval(Container.DataItem, “[n]”)...# DataBinder.Eval(Container, “DataItem
<%# System.DateTime.Parse(DataBinder.Eval(Container.DataItem, "begtime").ToString()).ToShortDateString() %> ``` **解析:** 这里使用`DataBinder.Eval`方法获取`DataItem`中的`begtime`属性值,并将其转换为`...
`ImageUrl`属性的值通过`DataBinder.Eval(Container,"DataItem.f_DemoImage")`来动态生成,这意味着每行的图片URL将从当前行的数据项(DataItem)中提取`f_DemoImage`字段的值。 `DataBinder.Eval`是一个数据绑定...