34

在 GridView ItemTemplate 中使用多个 EVAL 字段的最佳方法是什么?

希望对外观格式以及设置超链接/javascript等有一些控制。

4

4 回答 4

64

IMO 更清楚的是:

<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>
于 2008-09-11T02:10:35.380 回答
6

我以前用过这个(不好,我知道):

<%# Eval("Name1", "{0} - ")%> <%#Eval("Name2")%>

结果 = '约翰 - 史密斯'

但刚刚发现我也可以将两个(或更多)Evals 放在同一个数据绑定组中:

<%#Eval("Name1") & " - " & Eval("Name2")%>

结果 = '约翰 - 史密斯'

或者

<%# "First Name - " & Eval("Name1") & ", Last Name - " & Eval("Name2")%>  

结果 = '名字 - 约翰,姓氏 - 史密斯'

于 2008-09-11T01:21:44.313 回答
6

Eval 和 Bind 都很糟糕。
为什么要通过反射获取属性?您可以像这样直接访问它:

((MyObject)Container.DataItem).MyProperty

这不像在运行时您不知道该对象。无论如何,那是我的两分钱。

于 2008-09-11T02:23:46.503 回答
3

我有一个最简单的方法来做同样的事情......

<asp:Label ID="lblName" runat="server" Text='<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>'></asp:Label>

.

<%#Eval("FirstName").ToString() +", "+ Eval("LastName").ToString() %>

Here both objects are converted into string the concatenate them.

于 2016-04-09T21:17:45.717 回答