`
bulote
  • 浏览: 1385674 次
文章分类
社区版块
存档分类
最新评论

DataBinder.Eval和Container.DataItem有什么区别

 
阅读更多
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总结

    &lt;%# DataBinder.Eval(Container, "DataItem.字段名") %&gt; ``` 其中,`Container.DataItem` 表示当前项的数据对象,`"字段名"` 是要访问的数据源中的字段。`Container` 对象属于 `System.ComponentModel` 命名空间,...

    [ASP_NET]DataBinder_Eval用法_學習 積累 進步

    但在大量数据处理或性能敏感的应用中,应考虑使用`Container.DataItem["FieldName"]`或`((YourDataType)Container.DataItem).FieldName`,因为它们在编译时就确定了数据字段,比DataBinder.Eval运行时解析更高效。...

    深入理解Asp.net中DataBinder.Eval的用法总结

    &lt;&#37;# Bind(“Subject”) %&gt; //绑定字段&lt;&#37;# Container.DataItemIndex + 1%&gt; //实现自动编号&lt;&#37;# DataBinder.Eval&#40;Container.DataItem, “[n]”...# DataBinder.Eval(Container, “DataItem.Colum

    浅析DataBinder.Eval和Eval的区别

    相比之下,`DataBinder.Eval`是更通用的方法,它需要显式提供当前数据容器的引用,即`Container.DataItem`,以及需要绑定的字段名,如`DataBinder.Eval(Container.DataItem, "FieldName")`。这种方法允许在页面级别...

    EVAL操作集合 包含Eval()的一些常用操作 常用函数

    7. Eval()方法可以显示日期,只显示年月日,例如:&lt;%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%&gt; 8. Eval()方法可以显示货币样式,例如:&lt;%#Container.DataItem("price","{0:¥#,#...

    设计一个简单的网页

    d&gt; 可能感兴趣的人:"&gt; ... &lt;%# DataBinder.Eval(Container.DataItem, "Name")%&gt; &lt;%# DataBinder.Eval(Container.DataItem, "Sex")%&gt; &lt;%# DataBinder.Eval(Container.DataItem, "myEmail")%&gt; &lt;/td&gt;

    AspNetPager1

    &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem,"Activation")%&gt; &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem, "DealerId")%&gt; &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem, "UserId")%&gt; &lt;td&gt;&lt;%#DataBinder.Eval...

    ASP.NET完全入门

    ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩短...

    C#(ASP.NET)DateTime日期类型格式化显示

    DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}") 7.显示时间所有部分,包括:年月日时分秒 &lt;asp:BoundColumn DataField="收款时间" HeaderText="收款时间" DataFormatString="{0:yyyy-MM-dd HH24:mm...

    ASO.NET前台页面绑定数据大全

    &lt;%# DataBinder.Eval(Container.DataItem, "FieldName") %&gt; ``` - **参数解释**: - **Container.DataItem**: 当前容器(如GridView或Repeater控件)的数据项。 - **"FieldName"**: 要绑定的数据字段名称。 - ...

    C# aspx数据绑定方法集.doc

    这种简化后的语法与之前的`DataBinder.Eval(Container.DataItem, "FieldName")`相比,减少了参数的传递,使得代码更为简洁。 **示例**: ```html ...

    ASP.NET常用语句

    ASP.NET 常用语句 ...&lt;%# System.DateTime.Parse(DataBinder.Eval(Container.DataItem, "begtime").ToString()).ToShortDateString()%&gt; 该语句用于去除时间中的秒数,仅显示日期部分。 6. 标题带链接 ...

    ASP.NET Eval 求值运算的一些用法

    &lt;&#37;# Bind(“Subject”) %&gt; //绑定字段 &lt;&#37;# Container.DataItemIndex + 1%&gt; //实现自动编号 &lt;&#37;# DataBinder.Eval&#40;Container.DataItem, “[n]”&#41...# DataBinder.Eval(Container, “DataItem

    实用的代码

    &lt;%# System.DateTime.Parse(DataBinder.Eval(Container.DataItem, "begtime").ToString()).ToShortDateString() %&gt; ``` **解析:** 这里使用`DataBinder.Eval`方法获取`DataItem`中的`begtime`属性值,并将其转换为`...

    gird模板列的创建

    `ImageUrl`属性的值通过`DataBinder.Eval(Container,"DataItem.f_DemoImage")`来动态生成,这意味着每行的图片URL将从当前行的数据项(DataItem)中提取`f_DemoImage`字段的值。 `DataBinder.Eval`是一个数据绑定...

Global site tag (gtag.js) - Google Analytics