4

在这里,我编写了基于 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
    //...
});

});

4

3 回答 3

1

我记得在 kendo ui 文档中的某处(可能是数据源>组)它说,如果你定义组,分组需要排序的数据。删除所有组并以普通的香草网格显示数据,看看是否有一些自动排序被申请;被应用。

于 2015-04-28T20:14:03.620 回答
0

这是一个完整的猜测,但是您是否尝试过将 ServerSorting 属性设置为 true?

于 2013-03-20T13:39:22.153 回答
0

Kendo UI Grid GroupingListSortDirection.Ascending默认为您提供排序。如果你想做其他事情,你必须设置它。如果您正在使用 WebApi 接口并为该Kendo.mvc.dll方法生成一个 kendoRequest,.ToDataSourceResult(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;
   }
}

这样,网格中的排序功能会在匹配时影响按列分组。

于 2016-08-01T13:11:41.850 回答