如何使用Kendo-Grid中的字符串值对数字进行排序

时间:2013-09-25 19:38:01

标签: kendo-ui kendo-grid

我正在使用Kendo-Grid,其中一列具有数字和数字的值。字符串(NA)。知道如何对它们进行排序吗?

4 个答案:

答案 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)

使用http://jsbin.com/egoneWe/3/edit

中提供的代码

答案 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