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") %> 究竟做了啥?