Databinder.Eval 和 Container.DataItem 有啥区别?

Posted

技术标签:

【中文标题】Databinder.Eval 和 Container.DataItem 有啥区别?【英文标题】:What's the difference between Databinder.Eval and Container.DataItem?Databinder.Eval 和 Container.DataItem 有什么区别? 【发布时间】:2010-11-13 19:30:09 【问题描述】:

当您使用 asp.net 数据绑定表达式时:

<asp:Label Text='EXPRESSION' runat="server" />

两者有什么区别:

Container.DataItem("Property")

Databinder.Eval(Container.DataItem, "Property")

Eval("Property")

Bind("Property")

【问题讨论】:

【参考方案1】:

Eval 是单向绑定,Bind 是双向绑定。使用Eval 可以让您将内容放入您的页面,但 ASP.Net 将无法为您将其放回对象中。

Eval 方法只是DataBinder.Eval 的简写。此外,Container.DataItem("Property") 实际上与Eval 方法相同,除非您要返回“路径”的值。例如,您可以使用点分隔的“路径”调用 Eval 到您想要的公共属性的值,但我不相信您可以使用 Container.DataItem("Property") 执行此操作。

【讨论】:

以上是关于Databinder.Eval 和 Container.DataItem 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

在 asp.net 控件的样式属性中使用 DataBinder.Eval()

<%# Eval("State") %> 或 <%# DataBinder.Eval(Container.DataItem, "state")

项目模板中的 <%# DataBinder.Eval(Container.DataItem,"ColumnName") %> 究竟做了啥?

asp.net 中 Eval() Bind() <%%> <%=%> 总结

数据绑定

<%# Eval("discountprice") %>的值保留一位小数