grid - Kendo - 网格 - 复杂对象的聚合

标签 grid aggregate kendo-ui complextype

我有一个 Kendo UI 网格。网格有一个包含复杂对象数据的数据源。例如,{“foo”:{“bar”:10}}。虽然列字段可以导航对象图(即 foo.bar),但聚合字段似乎不能。

代码如下:

var grid = $("#grid").kendoGrid({
   dataSource: {
       data: [
           {"foo": {"bar": 10}},
           {"foo": {"bar": 20}}
       ],

       aggregate: [
           {field: "foo.bar", aggregate: "sum"}
       ]  
   },
   columns: [
       {
           field: "foo.bar",
           footerTemplate: "Sum: #= sum # "
      }
  ]   
}).data("kendoGrid");

这是 fiddle : http://jsfiddle.net/e6shF/1/

Firebug 在 kendo.all.min.js 第 8 行报告“TypeError: data.foo is undefined”。

我做错了什么吗?如果这是 Kendo 中的一个错误,有没有办法解决这个问题?我必须保持对象的复杂性。

最佳答案

这是来自 Kendo 支持的“更好”答案:

您遇到的行为是由于您指定的“路径”将用作聚合结果创建的 map 中的键而引起的。生成类似于以下内容的对象:

{“foo.bar”:{总和:30}}

不幸的是,页脚模板生成不支持此构造,因此无法正确解析。对于这种情况,一个可能的解决方法是使用函数。为了说明这一点,我修改了示例。

var grid = $("#grid").kendoGrid({
    dataSource: {
        data: [
            {"foo": {"bar": 10}},
            {"foo": {"bar": 20}}
        ],

        aggregate: [
            {field: "foo.bar", aggregate: "sum"}
        ]
    },
    columns: [
        {
            field: "foo.bar",
            footerTemplate: function(data) { return "Sum: " + data["foo.bar"].sum; }
        }
    ]   
}).data("kendoGrid");

关于grid - Kendo - 网格 - 复杂对象的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13388488/

相关文章:

css - 页面上的文本没有大小,只是折叠成自身

python pandas聚合非数字类型

r - 在R中按月汇总行

javascript - 剑道网格 : How to disable "filterable" on data-column definition?

javascript - Kendo UI数据源自动递增ID

angular - 动态更改 Angular Material 垫网格列表中的列值

javascript - 单选按钮列在使用 JqGrid 的该单选列的所有网格行中相互排斥?

html - 侧边栏旁边带有嵌套 100% 宽度标题的网格系统?

node.js - mongodb中的聚合函数

css - 列中的 Kendo UI 网格输入样式