【发布时间】:2010-12-20 06:45:01
【问题描述】:
在网格视图中,我们可以使用<%#Eval%> 或<%#Bind%> 从数据库中输出值。它们有什么区别?
【问题讨论】:
标签: asp.net
在网格视图中,我们可以使用<%#Eval%> 或<%#Bind%> 从数据库中输出值。它们有什么区别?
【问题讨论】:
标签: asp.net
eval 是一种方式,bind 是两种方式。如果您不想处理回发的数据,eval 将完成这项工作。
【讨论】:
eval 做单向绑定;绑定是双向的。
如果你使用 Eval 绑定一个值,它是只读的。您只能查看数据。
如果您使用 Bind 绑定值,对值的更改也会反映在数据库中。
您可以在此处参考有关堆栈溢出的类似帖子:What is the difference between <%# Bind("") %> and <%# Eval("") %> in ASP.NET?
【讨论】:
eval 和bind 之间的主要区别是eval 是只读的,我们不能更改数据库的东西eval。
在使用bind 时,我们可以对数据库进行一些更改。
【讨论】:
eval 和 bind 的主要区别是 eval 是只读的,我们不能改变数据库的东西 eval。
在使用绑定时,我们可以应用一些更改。
如果您不想处理回发的数据,eval 将轻松完成这项工作。
【讨论】:
正如他们所说,Eval 是一种方式,Bind 是两种方式 但还有一个更重要的区别Bind 必须分配给服务器端控件的属性(runat="server"),而您可以将 Eval 分配给服务器端或客户端控件
<asp:ListView ID="listview1" runat="server">
<ItemTemplate>
<%--you can do this--%>
<asp:Label ID="label1" runat="server" Text="<%#Bind('xx') %>"></asp:Label>
<%--you can do this--%>
<asp:Label ID="label2" runat="server" Text="<%#Eval('xx') %>"></asp:Label>
<div>
<%--WILL CAUSE AN ERROR--%>
"<%#Bind('xx') %>"
<%--you can do this--%>
"<%#Eval('xx') %>"
</div>
</ItemTemplate>
</asp:ListView>
【讨论】:
我认为两者没有区别。我们可以将Eval 和Bind 用于insert、update 和delete 以及select 等所有操作。
因为我在这两种情况下都使用过,并且在两种情况下都可以正常工作。
【讨论】:
Eval 和 Bind 函数用于将数据库中的数据绑定到 DataBound 控件中的控件,例如 GridView、DetailsView、Repeater、DataList 等。
Eval 和 Bind 的区别在于,Eval 函数用于将数据绑定到 DataBound 控件内部的控件,但它不能将值更新回数据库。
另一方面,Bind 函数可用于将数据绑定到 DataBound 控件内的控件,也可以将值更新回数据库。
【讨论】: