Kendo Grid Grouping列排序不起作用

时间:2015-10-09 06:47:06

标签: asp.net kendo-grid

在Kendo UI Grid中,对分组列排序进行分组后,剩余的列排序工作正常。

任何人都可以告诉我如何从客户端对分组列进行排序。

谢谢!

2 个答案:

答案 0 :(得分:0)

当您在kendo网格中对数据进行分组时,它会自动对组asc进行排序。 您可以在docs

中了解此行为

但你需要的是在列标题点击上更改组排序。

dataBound事件上尝试查看网格dataSource.sort()集合,如果需要更改组排序方向。

这样的事情:

//Get the grid object
 var grid = $("#grid").data("kendoGrid");
// Get the datasource bound to the grid
var ds = grid.dataSource;
// Get current sorting
var sort = ds.sort();
// Display sorting fields and direction
if (sort) {
    for (var i = 0; i < sort.length; i++) {
        if(sort[i].field == " myField"){
           grid.dataSource.group({field:"myField", dir: sort[i].dir });
        }
    }
}

答案 1 :(得分:0)

Kendo UI网格分组默认为您提供ListSortDirection.Ascending排序。如果你想做别的事,你必须设置它。如果您正在使用WebApi界面并为Kendo.mvc.dll方法.ToDataSourceResult(kendoRequest);生成kendoRequest,那么您可以尝试这样的事情:

var sort = kendoRequest.Sorts.FirstOrDefault();
var group = kendoRequest.Groups.FirstOrDefault(); 
if(sort != null && group != null) {
   if(sort.Member == group.Member && sort.SortDirection == ListSortDirection.Descending) {
      kendoRequest.Groups[0].SortDirection = sort.SortDirection;
   }
}
var result = data.ToDataSourceResult(kendoRequest);