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

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

有帮助吗?

解决方案

IMO 更清楚的是:

<%# String.Format("{0} - {1}", Eval("Name1"), Eval("Name2")) %>

其他提示

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

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

结果 = '约翰 - 史密斯'

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

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

结果 = '约翰 - 史密斯'

或者

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

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

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

((MyObject)Container.DataItem).MyProperty

这并不是说该对象在运行时对您来说是未知的。无论如何,这是我的两分钱。

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

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

.

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

这里两个对象都被转换为字符串并将它们连接起来。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top