【发布时间】:2013-09-25 19:38:00
【问题描述】:
我正在使用 Kendo-Grid,它有一列具有数字和字符串 (NA) 的值。知道如何对它们进行排序吗?
【问题讨论】:
标签: kendo-ui kendo-grid
我正在使用 Kendo-Grid,它有一列具有数字和字符串 (NA) 的值。知道如何对它们进行排序吗?
【问题讨论】:
标签: kendo-ui kendo-grid
您可以使用自定义比较功能对它们进行排序。下面是一些示例代码,它会将带有 'N/A' 的项目放在顶部:
$("#grid").kendoGrid({
dataSource: [
{ price: 1 },
{ price: "N/A" },
{ price: 20 },
{ price: 2 }
],
sortable: true,
columns: [
{
field: "price",
sortable: {
compare: function(a, b) {
var x = a.price;
var y = b.price;
if (x == 'N/A') {
x = 0;
}
if (y == 'N/A') {
y = 0;
}
return x - y;
}
}
}
]
});
这是一个现场演示:http://jsbin.com/urUXOCa/1/edit
【讨论】:
它与http://jsbin.com/egoneWe/3/edit中的代码一起工作
【讨论】:
将字段值设为数字。然后,如果需要,在显示时添加字符串。
请参考这个寻求帮助:sorting numbers (dollar amt and percentage) not working
【讨论】:
据我所知,没有办法为字段创建自己的排序函数。 我确实找到了http://sympletech.com/how-to-enable-case-insensitive-sorting-on-kendo-ui-grid/,有人在其中实现了您所要求的内容(他只是在进行不区分大小写的排序)。
我不得不这样做一次(幸好在不可编辑的网格上,只是显示数据),我只是使用模板欺骗了网格。通过在数据绑定之前检查数据,向其中添加另一个属性来表示可以正确排序的数据,并将网格绑定到该列而不是原始列,但使用返回原始数据值的模板。
【讨论】: