我正在使用Kendo-Grid,其中一列具有数字和数字的值。字符串(NA)。知道如何对它们进行排序吗?
答案 0 :(得分:6)
您可以使用自定义比较功能对它们进行排序。以下是一些示例代码,它将'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
答案 1 :(得分:1)
答案 2 :(得分:0)
将字段值设为数字。然后,如果需要,在显示时添加字符串。
请参考此处寻求帮助:sorting numbers (dollar amt and percentage) not working
答案 3 :(得分:0)
据我所知,没有办法为字段创建自己的排序函数。 我确实找到了http://sympletech.com/how-to-enable-case-insensitive-sorting-on-kendo-ui-grid/,其中有人实现了你所要求的东西(他只是做了敏感的排序)。
我必须这样做一次(谢天谢地,在一个不可编辑的网格上,只是显示数据),我只是使用模板欺骗网格。通过在dataBound之前遍历数据,向其添加另一个属性,该属性表示将正确排序的数据,并将网格绑定到该列而不是原始列,但使用返回原始数据值的模板。
请参阅jsbin http://jsbin.com/ETaZOSu/1/edit