我有一个 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/