2016-09-19 53 views
0

我在Kendo網格中排序時遇到問題。這是我的例子:http://dojo.telerik.com/iVATi
在IE排序作品罰款:默認視圖ASC排序視圖是相同的:第一去元件開始符號,用A-Z字母,與а-я字母第三元件的第二元件。
但在Chrome和Firefox中,我看到另外三個結果:
1)。默認視圖:第一個以符號開始的元素,第二個元素以a-z字母表示,第三個元素以-字母。 (正確!)
2)。 asc排序:第一個元素以符號開頭,第二個元素以а-я字母,第三個元素以-z字母開頭。 (壞!)
3)。 desc排序:首先去z-a字母的元素,第二個元素用я-а字母,第三個帶符號的排序元素。 (正確!)kendo grid sorting在Chrome中不工作

回答

0

該問題是由Chrome的不穩定排序引起的,adding an auxiliary data field是解決此限制的標準方法。

如果你不想數據項數組中添加索引,也可以將它們與schema.parse添加上飛:

var dataSource = new kendo.data.DataSource({ 
    data: [ 
     { Name: "!asdgad" }, 
     { Name: "@sgjkhsh" }, 
     { Name: "adfadfka" }, 
     { Name: "tgjbndgnb" }, 
     { Name: "xsdfvks" }, 
     { Name: "абдваолптрв" }, 
     { Name: "пролрлитс" }, 
     { Name: "юатроваро" }, 
     { Name: "юдвлоитвт" } 
    ], 
    schema: { 
     parse: function(data) { 
     for (var i = 0; i < data.length; i++) { 
      data[i].index = i; 
     } 
     return data; 
     } 
    } 
    }); 

您仍然需要使用自定義比較函數雖然。

+0

那麼這個解決方案呢:[link](http://dojo.telerik.com/iVATi/3)? – user1893999

+0

這對我而言沒有正確排序。嘗試在地址欄中使用此方法,名稱仍然會移動 - http://docs.telerik.com/kendo-ui/controls/data-management/grid/how-to/stable-sort-chrome – dimodi

+0

是的,這個鏈接與添加我最初使用的位置的想法。和[http://dojo.telerik.com/UKimo](http://dojo.telerik.com/UKimo)比較函數'compare:function(a,b){ \t return a.index - b.index ; '作品很好,就像在IE中一樣。 – user1893999

0

我解決了這個問題。我擴展了索引字段的排序數據源,並通過字段名索引添加了比較函數: http://dojo.telerik.com/UKimo
可能存在其他解決方案嗎?