0

我有一个网格,可以使用http://www.telerik.com/help/aspnet-ajax/grdbindingtosubobjects.html中定义的语法将许多子数据对象毫无问题地绑定到列。

但是,我不知道如何聚合作为列表或集合的子对象。例如,如果我有一个 Customer 对象并且我想获取客户的第一个街道地址,我会使用DataField="Customer.Addresses[0].Street"标准的GridBoundColumn. 我怎样才能得到地址的计数?我尝试了各种 GridCalculatedColumn 数据字段和表达式,但无济于事。我正在寻找类似的东西:

这当然行不通。事实上,如果我尝试对任何虚线数据字段进行计数,我会得到一个例外

System.Data.SyntaxErrorException:聚合参数中的语法错误:需要一个可能带有“子”限定符的列参数。

例如,仅尝试使用Count({0})DataFields 设置为Customer.FirstName(其中只有一个)的表达式,会导致在运行时引发该异常。对非点数据字段(例如 SendDate)执行相同操作不会导致相同的异常。

4

1 回答 1

2

似乎您已经从Telerik 论坛收到了这个问题的答案,但对于那些可能偶然发现这个问题并寻找答案的人来说。

本质上,RadGrid 不支持在其 DataFields 中包含集合,可以在此处找到支持的可绑定属性类型。因此,就这种聚合而言,您可以在将其绑定到 RadGrid 之前对该集合进行计算并定义一个聚合列,或者您可以像在这个演示中一样考虑使用页脚。

于 2010-08-19T15:51:18.233 回答