我有一个网格,使用http://www.telerik.com/help/aspnet-ajax/grdbindingtosubobjects.html定义的语法将多个子数据对象绑定到没有问题的列。
然而,我无法弄清楚的是如何聚合作为列表或集合的子对象。例如,如果我有一个Customer对象,并且我想获得客户的第一个街道地址,我会在标准DataField="Customer.Addresses[0].Street"
上使用GridBoundColumn
。
我怎样才能得到地址的数量?我尝试了各种GridCalculatedColumn DataFields和Expressions,但无济于事。我正在寻找类似的东西:
当然,这不起作用。事实上,如果我尝试对任何虚线数据字段进行计数,我会得到
的例外“ System.Data.SyntaxErrorException:聚合参数中的语法错误:期望具有可能的”子“限定符的单个列参数。”
例如,只是尝试使用Count({0})
的表达式,其中DataFields设置为Customer.FirstName
(其中只有一个),导致在运行时抛出该异常。使用非点分数据字段(例如SendDate)执行相同操作不会导致相同的异常。
答案 0 :(得分:2)
好像你已经从Telerik forums收到了这个问题的答案,但对于那些可能偶然发现这个问题寻找答案的人来说。
基本上,RadGrid不支持在其DataField中使用集合,并且可以找到支持的可绑定属性类型here。因此,就此聚合而言,您可以在将此绑定到RadGrid之前对此集合进行计算并定义聚合列,或者您可以使用类似于this demo的内容来查看。