我使用kendo网格来显示一组记录。 但是现在我想使用Aggregates属性对列进行分组并执行某些操作 列上的聚合函数。
根据以下文档,我可以在单个列上应用分组,但我想对多列进行分组 http://demos.telerik.com/kendo-ui/grid/aggregates
请建议我如何实现它。
由于
答案 0 :(得分:8)
您需要将网格数据源的group选项设置为数组。以下是一些示例代码:
<div id="grid"></div>
<script>
var dataSource = new kendo.data.DataSource({
data: [
{ name: "Pork", category: "Food", subcategory: "Meat" },
{ name: "Pepper", category: "Food", subcategory: "Vegetables" },
{ name: "Beef", category: "Food", subcategory: "Meat" }
],
group: [
// group by "category" and then by "subcategory"
{ field: "category" },
{ field: "subcategory" },
]
});
$("#grid").kendoGrid({
dataSource: dataSource
});
</script>
答案 1 :(得分:1)
因为它被问到,并且隐含在问题标题中:可以将&#34;组合在一起&#34;而不是等级的。它需要更改数据模型,以便所有分组列在一个对象中保存在一起。
在数据源中,模型和分组配置可能类似于
data: [
{ name: "Pork", cat_group: { category: "Food", subcategory: "Meat" } },
{ name: "Pepper", cat_group: { category: "Food", subcategory: "Vegetables" } },
{ name: "Beef", cat_group: { category: "Food", subcategory: "Meat" } }
],
group: [
// group by "category" and "subcategory" together
{ field: "cat_group" },
]
MVC集成的如果使用AJAX数据源在ASP.NET MVC中对序列化对象进行此操作,请注意分组对象必须具有值语义(覆盖Equals
并实现==
/ !=
)以及实施IComparable
。