2016-09-19 50 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
可能存在其他解决方案吗?