这里我编写了基于id获取CategoryName值的存储过程,值来自印度,美国,巴西等服务,但在UI部分值是按字母顺序自动排序显示像美国,巴西,印度这样的组。我希望按顺序显示印度,美国,巴西等格式。我究竟做错了什么?提前谢谢。
$(document).ready(function () {
var grid = $("#grid").kendoGrid({
dataSource: {
type: "GET",
transport: {
read: {
url: "some url placed here",
dataType: "jsonp"
}
},
pageSize: 20,
serverSorting: false,
group: {
field: "CategoryName",
aggregates: [{
field: "abc",
aggregate: "count"
}, {
field: "def",
aggregate: "sum"
}, {
field: "ghi",
aggregate: "sum"
}]
},
aggregate: [{
field: "abc",
aggregate: "count"
}, {
field: "def",
aggregate: "sum"
}, {
field: "ghi",
aggregate: "sum"
}]
},
columns: [
//column section goes here.....
],
sortable: false
//...
});
});
答案 0 :(得分:1)
我记得kendo ui文档中的某个地方(可能是datasource> groups)它说,如果你定义组,分组需要排序的数据。删除所有组并以普通的vanilla网格显示数据并查看如果应用了一些自动排序。
答案 1 :(得分:0)
这是一个完整的猜测,但您是否尝试将ServerSorting属性设置为true?
答案 2 :(得分: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;
}
}
这样,Grid中的Sort功能会在匹配时影响Group by列。