【问题标题】:How to bind a telerik grid column to a child data object that is a list?如何将 Telerik 网格列绑定到作为列表的子数据对象?
【发布时间】:2011-03-29 15:42:52
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我喜欢在将集合绑定到 RadGrid 之前对其进行计算的想法,但是如何在聚合列中得到它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多