kendo网格排序无法在Chrome中使用

时间:2016-09-19 13:27:10

标签: google-chrome sorting firefox kendo-grid cyrillic

我在Kendo网格中排序有问题。这是我的例子:http://dojo.telerik.com/iVATi
在IE排序工作正常:默认视图 asc排序视图是相同的:第一个以符号开头的元素,第二个元素用az字母,第三个元素用а-я字母。
但是在Chrome和Firefox中我看到了其他三个结果:
1)。默认视图:以符号开头的第一个元素,带有a-z字母的第二个元素,带有а-я字母的第三个元素。 (正确!)
2)。 asc排序:首先以符号开头的元素,第二个带有а-я字母的元素,带有a-z字母的第三个元素。 (糟糕!)
3)。 desc排序:带有z-a字母的第一个元素,带有я-an字母的第二个元素,带有符号的第三个带有元素的元素。 (正确!)

2 个答案:

答案 0 :(得分:0)

我解决了这个问题。我使用索引字段扩展了已排序的数据源,并通过索引为字段名称添加了comparer-function: http://dojo.telerik.com/UKimo
可能存在其他解决方案吗?

答案 1 :(得分: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;
      }
    }
  });

您仍然需要使用自定义比较器功能。