Kendo Grid中的多列分组

时间:2015-09-02 11:21:05

标签: kendo-ui kendo-grid telerik-grid

我使用kendo网格来显示一组记录。 但是现在我想使用Aggregates属性对列进行分组并执行某些操作 列上的聚合函数。

根据以下文档,我可以在单个列上应用分组,但我想对多列进行分组 http://demos.telerik.com/kendo-ui/grid/aggregates

请建议我如何实现它。

由于

2 个答案:

答案 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>

这是一个现场演示:http://dojo.telerik.com/@korchev/OBAva

答案 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