2015-05-29 71 views
0

當點擊標題欄時,劍道網格的默認排序方向爲升序。Kendo Grid根據標題升序排序降序點擊

我想在用戶首次點擊標題時按照降序對kendo網格進行排序。

例子:

1. Default Behavior 

Studnet Marks 
abc  15 
pqr  25 
xyz   7 

2. When Clicking on Marks Header first time 

Student Marks 

pqr  25 
abc  15 
xyz   7 

3. When clicking on Marks header second time. 

Students Marks 
xyz  7 
abc  15 
pqr  25 

我特林是這樣的:

$("#priority .k-header").eq(1).click(function(ele) { 
      debugger; 
      var kendoGrid = $("#priority").data('kendoGrid'); 
      var dsSort = []; 
      var sort = kendoGrid.dataSource.sort(); 
      if (sort.length > 0) { 
       if(sort[0].dir==="asc") 
        kendoGrid.dataSource.sort({field: sort[0].field, dir: "desc"}); 
       if(sort[0].dir==="desc") 
        kendoGrid.dataSource.sort({field: sort[0].field, dir: "asc"}); 
      } 

     }); 

但它不工作。

回答

0

我也尋找這個問題,並遇到了這個問題。 我在此期間找到了解決方案。 我們創建一個函數來扭轉領域:

function reverseSortOrderSequence() { 

      setTimeout(function() { 
       var colSortHeaders = $("#gridId [data-role='columnsorter']"); 
       $.each(colSortHeaders, function(index, item) { 
        if ($(item).attr("data-dir") === undefined) { 
         $(item).attr("data-dir", "asc"); 
        } else if ($(item).attr("data-dir") === "asc") { 
         $(item).attr('data-dir', 'desc'); 
        } else if ($(item).attr("data-dir") === "desc") { 
         $(item).attr('data-dir', null); 
        } 
       }); 
      }); 
     } 

只需用劍道電網的ID替換gridId。

然後,調用這個函數在你的劍道電網配置的數據綁定屬性:

{... 
    columns: ..., 
    dataBound: function(event) { 
     reverseSortOrderSequence(); 
    } 
} 
+0

我試過這個解決方案,但kendo在設置之後在某處刪除了該屬性。如果我之後手動設置,它工作正常。我還檢查了該屬性是否真的添加在dataBound事件中,但由於某種原因,kendo稍後將其刪除。 –

1

指定劍道數據源如下排序:

$("#grid").kendoGrid({ 
     dataSource: { 
      .. 
      , sort: { field: "Marks", dir: "desc" } 
      .. 
     } 
    }); 

編輯 ,你可以嘗試這樣的

設置全局值和呼叫改變數據源功能

var firstClick=true; 

    $('#grid').data().kendoGrid.dataSource.bind('change', function(e) { 
     if(firstClick){ 
      var kendoGrid = $("#grid").data('kendoGrid'); 
      var dsSort = []; 
      dsSort.push({ field: "fieldName1", dir: "asc" }); 
      dsSort.push({ field: "fieldName2", dir: "desc" }); 
      ... 
      kendoGrid.dataSource.sort(dsSort); 
      firstClick=false; 
      } 
}); 
+0

當我在第一個數據源綁定唯一遞減順序做了這樣的事情劍道加載數據。我想在HEADER CLICK上對數據進行排序,而不是數據綁定。第一次,數據綁定數據應該按照學生姓名的升序進行加載。 –