kendo 网格排序在 Chrome 中不起作用
kendo grid sorting not working in Chrome
我在 Kendo 网格中排序有问题。这是我的例子:http://dojo.telerik.com/iVATi
在 IE 中排序工作正常:default view 和 asc sorting view 是相同的:第一个元素以符号开头,第二个元素以 a-z 字母,第三个元素带有 а-я 字母的元素。
但是在 Chrome 和 Firefox 中我看到了其他三个结果:
1).默认视图:第一个元素以符号开头,第二个元素以 a-z 字母开头,第三个元素以 а-я 字母开头。 (正确!)
2). asc 排序:第一个元素以符号开头,第二个元素以 а-я 字母开头,第三个元素以 a-z 字母开头。 (糟糕!)
3). desc 排序:第一个元素带有 z-a 字母,第二个元素带有 я-а 字母,第三个元素带有符号。 (正确!)
我解决了这个问题。我使用索引字段扩展了排序数据源,并通过索引为字段名称添加了比较器函数:
http://dojo.telerik.com/UKimo
可能存在其他解决方案?
问题是由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;
}
}
});
尽管如此,您仍然需要使用自定义比较器函数。
我在 Kendo 网格中排序有问题。这是我的例子:http://dojo.telerik.com/iVATi
在 IE 中排序工作正常:default view 和 asc sorting view 是相同的:第一个元素以符号开头,第二个元素以 a-z 字母,第三个元素带有 а-я 字母的元素。
但是在 Chrome 和 Firefox 中我看到了其他三个结果:
1).默认视图:第一个元素以符号开头,第二个元素以 a-z 字母开头,第三个元素以 а-я 字母开头。 (正确!)
2). asc 排序:第一个元素以符号开头,第二个元素以 а-я 字母开头,第三个元素以 a-z 字母开头。 (糟糕!)
3). desc 排序:第一个元素带有 z-a 字母,第二个元素带有 я-а 字母,第三个元素带有符号。 (正确!)
我解决了这个问题。我使用索引字段扩展了排序数据源,并通过索引为字段名称添加了比较器函数:
http://dojo.telerik.com/UKimo
可能存在其他解决方案?
问题是由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;
}
}
});
尽管如此,您仍然需要使用自定义比较器函数。