Javascript 剑道网格标题单击分组排序

Javascript 剑道网格标题单击分组排序,javascript,sorting,kendo-ui,kendo-grid,Javascript,Sorting,Kendo Ui,Kendo Grid,在剑道格网中,我希望始终在顶部显示一组行。我这样做是基于一个“GroupField(values 1,2)”字段,每个组都有不同的着色模式。在排序时,记录需要在此组中排序。我可以在这组人中进行分类,但问题是最后一组人是第一个来的 在列定义中,我在可排序块中调用一个函数,如下所示,函数定义也显示出来 sortable: { compare : function (a, b) { retu

在剑道格网中,我希望始终在顶部显示一组行。我这样做是基于一个“GroupField(values 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;

}

我是以正确的方式完成的,还是排序逻辑中有任何问题?

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

var dataSource = new kendo.data.DataSource({
                    data: data,
                    pageSize: 20,
                    group: { field: "GroupField" }
                 });
如果不想显示组字段和分组样式,请在剑道网格选项的数据绑定中使用此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');                           
                }
            };