<#eval和<#bind在asp.net中有什么区别?

20
在网格视图中,我们可以使用 <%#Eval%><%#Bind%> 来输出来自数据库的值。它们之间有什么区别?

https://dev59.com/V3VC5IYBdhLWcg3wixw0 - Canavar
7个回答

31

5

eval是单向的,bind是双向的。如果您不想处理回传的数据,eval就可以胜任。


2
evalbind 的主要区别在于,eval 是只读的,我们无法更改数据库中的内容。而使用 bind 时,我们可以对数据库进行一些更改。

1
他们说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>

1
eval和bind的主要区别在于,eval是只读的,我们无法更改数据库中的内容。
而使用bind时,我们可以应用一些更改。
如果您不想处理返回的数据,eval将轻松完成工作。

0

Eval和Bind函数用于将数据库中的数据绑定到DataBound控件内部的控件,例如GridView、DetailsView、Repeater、DataList等。

Eval和Bind之间的区别在于,Eval函数用于将数据绑定到DataBound控件内部的控件,但它无法将值更新回数据库。

另一方面,Bind函数可用于将数据绑定到DataBound控件内部的控件,并且它也可以将值更新回数据库。


-1
我认为两者没有区别。我们可以对所有操作使用EvalBind,例如插入(insert)更新(update)删除(delete)以及选择(select)。因为我已经在两种情况下都使用过,并且都正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接