询问一下:DataBinder.Eval

Eri 2005-04-06 11:44:11
Microsoft .NET Framework SDK v1.1 上说,
<%# DataBinder.Eval (Container.DataItem, "Price") %>

由于此方法在运行时使用反射执行后期绑定计算,因此与标准 ASP.NET 数据绑定语法相比,它会导致性能明显下降。
一般不是用这个方法么?还有别的办法在Repeater控件里面显示数据么?
...全文
131 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shinji329 2005-04-10
  • 打赏
  • 举报
回复
效率问题没怎么考虑过
minghui000 2005-04-10
  • 打赏
  • 举报
回复
up
kkeemmgg 2005-04-10
  • 打赏
  • 举报
回复

<%# String.Format("{0:c}", (CType(Container.DataItem, DataRowView)("IntegerValue"))) %>


kkeemmgg 2005-04-10
  • 打赏
  • 举报
回复
DataBinder.Eval 很方便,因为它消除了开发人员为强迫将值转换为所需的数据类型而必须做的许多显式转换。这在数据绑定模板列表内的控件时尤其有用,因为通常数据行和数据字段的类型都必须转换。
<%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>



kkeemmgg 2005-04-10
  • 打赏
  • 举报
回复
可以使用Container.DataItem("Name")

DataBinder.Eval(Container.DataItem,"Name")和Container.DataItem("Name")有什么区别?
DataBinder是System.Web里面的一个静态类,它提供了Eval方法用于简化数据绑定表达式的编写,但是它使用的方式是通过Reflection等开销比较大的方法来达到易用性,因此其性能并不是最好的。而Container则根本不是任何一个静态的对象或方法,它是ASP.NET页面编译器在数据绑定事件处理程序内部声明的局部变量,其类型是可以进行数据绑定的控件的数据容器类型(如在Repeater内部的数据绑定容器叫RepeaterItem),在这些容器类中基本都有DataItem属性,因此你可以写Container.DataItem,这个属性返回的是你正在被绑定的数据源中的那个数据项。如果你的数据源是DataTable,则这个数据项的类型实际是DataRowView
SweetRain 2005-04-09
  • 打赏
  • 举报
回复
关注......
Nils 2005-04-09
  • 打赏
  • 举报
回复
UP
zhangqiushui 2005-04-09
  • 打赏
  • 举报
回复
不初始绑定
Eri 2005-04-09
  • 打赏
  • 举报
回复
有人知道么?
hs_tang7788 2005-04-06
  • 打赏
  • 举报
回复
一直用,到还真没关注过这个问题~~

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧