Многоколоночная группировка в Kendo Grid
Я использую сетку кендо для отображения набора записей. Но теперь я хочу использовать свойство Aggregates для группировки столбцов и выполнения определенной функции агрегирования столбцов.
Согласно приведенной ниже документации, я могу применить группировку по одному столбцу, но я хочу сделать группировку по нескольким столбцам http://demos.telerik.com/kendo-ui/grid/aggregates
Пожалуйста, предложите, как я могу достичь этого.
Спасибо
2 ответа
Вам необходимо установить параметр группы источника данных сетки в виде массива. Вот пример кода:
<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
Потому что это было задано и подразумевается в названии вопроса: можно группировать "вместе", а не иерархически. Требуется изменение модели данных, чтобы все столбцы группировки были объединены в один объект.
В источнике данных модель и конфигурация группировки могут выглядеть
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:
Если это делается с сериализованными объектами в ASP.NET MVC с использованием источника данных AJAX, обратите внимание, что объект группировки должен иметь семантику значений (переопределение Equals
и внедрение ==
/!=
) а также внедрение IComparable
,