2015-09-11 42 views
0

在劍道網格中,我想始終顯示頂部的一組行。我基於'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; 

} 

我是用正確的方式來完成它,還是在我的排序邏輯中有任何問題?

回答

0

我對此有一個簡單的解決方法。不需要去問題中提到的函數調用。只需在數據源中指定組,如下所示。

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');       
       } 
      };