我在Kendo网格中排序有问题。这是我的例子:http://dojo.telerik.com/iVATi
在IE排序工作正常:默认视图和 asc排序视图是相同的:第一个以符号开头的元素,第二个元素用az字母,第三个元素用а-я字母。
但是在Chrome和Firefox中我看到了其他三个结果:
1)。默认视图:以符号开头的第一个元素,带有a-z字母的第二个元素,带有а-я字母的第三个元素。 (正确!)
2)。 asc排序:首先以符号开头的元素,第二个带有а-я字母的元素,带有a-z字母的第三个元素。 (糟糕!)
3)。 desc排序:带有z-a字母的第一个元素,带有я-an字母的第二个元素,带有符号的第三个带有元素的元素。 (正确!)
答案 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;
}
}
});
您仍然需要使用自定义比较器功能。