2013-09-25 77 views

回答

0

據我所知,還沒有建立自己的排序功能的一個字段的方式。 我確實發現http://sympletech.com/how-to-enable-case-insensitive-sorting-on-kendo-ui-grid/某人實施了類似你所問的事情(他只是在做敏感的排序)。

我不得不這樣做一次(幸好在一個不可編輯的網格上,只是顯示數據),我只是用模板來欺騙網格。通過在數據綁定之前瀏覽數據,添加另一個屬性來代表正確排序的數據,並將網格綁定到該列而不是原始列,但使用返回原始數據值的模板。

見jsbin http://jsbin.com/ETaZOSu/1/edit

+0

從你的jsbin中,我無法理解你在哪裏調用valueTemplate(e) – JPN

+0

在網格上的列集合中。 [ ] –

6

您可以使用自定義的比較函數對它們進行排序。下面是一些示例代碼,這將對項目進行「N/A」在最前面:

$("#grid").kendoGrid({ 
    dataSource: [ 
    { price: 1 }, 
    { price: "N/A" }, 
    { price: 20 }, 
    { price: 2 } 
    ], 
    sortable: true, 
    columns: [ 
    { 
     field: "price", 
     sortable: { 
     compare: function(a, b) { 
      var x = a.price; 
      var y = b.price; 

      if (x == 'N/A') { 
      x = 0; 
      } 

      if (y == 'N/A') { 
      y = 0; 
      } 

      return x - y; 
     } 
     } 
    } 
    ] 
}); 

這裏有一個現場演示:http://jsbin.com/urUXOCa/1/edit

+0

這個演示效果很好,我編輯了它並添加了更少的價值和完美的作品。但是同樣的邏輯對我來說並不合適。我認爲原因可能是我沒有使用jQuery,而我正在學習Angular-Kendo。任何想法如何進行這種排序:{比較:....}}使用angular-kendo – JPN

+0

在該示例中,我們如何動態獲取列a.price。至少如何將值字段獲取到var x = a。$ field(類似的東西)。這是可能的 – JPN

相關問題