使用分组进行Kendo Grid标题点击排序

时间:2015-09-11 09:18:09

标签: javascript sorting kendo-ui kendo-grid

在Kendo网格中,我想总是在顶部显示一组行。我基于'GroupField(值1,2)'字段进行此操作,并且每个组具有不同的着色模式。在排序时,记录需要在此组中排序。我可以在这个组中排序,但问题是最后一组是第一个。

在列定义中,我调用可排序块中的函数,如下所示,还显示了函数定义。

sortable: {
                            compare : function (a, b) {
                            return generateCompare(a, b, 'FieldNameToSort');
                        }

function generateCompare(a, b, field) {
 if (a.GroupField == b.GroupField)
                 result = a[field] === b[field] ? 0: a[field]> b[field] ? 1 : -1;
            else if (a.GroupField > b.GroupField)
                 result = -1;

}

我是否以正确的方式完成任务或在我的排序逻辑中是否存在任何问题?

1 个答案:

答案 0 :(得分:0)

我有一个简单的解决方法。不需要去问我在问题中提到的函数调用。只需在数据源中指定group,如下所示。

var dataSource = new kendo.data.DataSource({
                    data: data,
                    pageSize: 20,
                    group: { field: "GroupField" }
                 });

如果您不想显示组字段和分组样式,请在kendo网格选项的数据绑定中使用此jQuery:

$scope.kendoGridOptions = {
                dataBound: function (e) {
                    var grid = e.sender;                        
                        $(".k-group-col,.k-group-cell").remove();
                        var spanCells = $(".k-grouping-row").children("td");
                        spanCells.attr("colspan", spanCells.attr("colspan") - 1);
                        $('.k-grouping-row').addClass('ng-hide');                           
                }
            };