如何将telerik网格列绑定到作为列表的子数据对象?

时间:2010-08-13 19:40:49

标签: c# asp.net-ajax telerik telerik-grid

我有一个网格,使用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)执行相同操作不会导致相同的异常。

1 个答案:

答案 0 :(得分:2)

好像你已经从Telerik forums收到了这个问题的答案,但对于那些可能偶然发现这个问题寻找答案的人来说。

基本上,RadGrid不支持在其DataField中使用集合,并且可以找到支持的可绑定属性类型here。因此,就此聚合而言,您可以在将此绑定到RadGrid之前对此集合进行计算并定义聚合列,或者您可以使用类似于this demo的内容来查看。