是什么有<%#的eval( “国家”)%>或<%#DataBinder.Eval的(的Container.DataItem, “状态”)%>
<%# Eval("State") %>
在aspx
之间的区别与
<%# DataBinder.Eval(Container.DataItem, "State") %>
在您的aspx
页面?
是什么有<%#的eval( “国家”)%>或<%#DataBinder.Eval的(的Container.DataItem, “状态”)%>
<%# Eval("State") %>
在aspx
之间的区别与
<%# DataBinder.Eval(Container.DataItem, "State") %>
在您的aspx
页面?
的eval快捷方式(“国家”)是的DataBinder.Eval(的Container.DataItem,“国家”)语法的简化形式。它只适用于数据绑定模板控件。
欲了解更多信息,请参阅the MSDN documentation。
没有区别。 “Eval”方法只是DataBinder.Eval(Container.DataItem,“blah”)方法的快捷方式。
Eval方法只是后者
下面的代码
<%# (DataBinder.Eval(Container.DataItem, "ApplicationId").ToString() == "-1" ? "N/A" : Eval("ApplicationId").ToString()) %>
我见过所以我猜他们稍有不同。
有很多的幕后<%# Eval %>
和<%# DataBinder.Eval %>
之间的差异,即使the documentation指出,使用Eval
(TemplateControl.Eval
是精确的)实际上是调用DataBinder.Eval
,他们的任务是做同样的工作。
这是正确的,但只使用Eval
意味着ASP.NET本身解析数据绑定的对象。它在内部使用一个堆栈,在调用Control.DataBind()
时添加项目。诀窍是,只有当控件的Page
属性在此时不是null
时才会发生这种情况。
如果Page
-managed堆栈是不是最新的,当你到如此地步,DataItem
需要被解决,Page.GetDataItem()
方法会给异常,并像
数据绑定方法如消息,
XPath()
和Bind()
只能用于数据绑定控件的上下文中。
DataBinder.Eval
仍然适用于这些情况,因为您手动为它提供目标对象,所以ASP.NET不需要自行解决任何问题。
现在你有你的答案...它是回声2次:) – 2008-11-06 21:20:10
大声笑,是的,谢谢。 – Xaisoft 2008-11-06 21:30:48