8

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

4

4 回答 4

8

您可以使用自定义比较功能对它们进行排序。这是一些示例代码,它将带有“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

于 2013-09-26T06:39:32.903 回答
1

它使用http://jsbin.com/egoneWe/3/edit中可用的代码

于 2013-09-28T15:24:44.293 回答
0

将字段值设为数字。然后,如果需要,在显示时添加字符串。

请参考这个寻求帮助:排序数字(美元和百分比)不起作用

于 2013-09-25T19:53:38.583 回答
0

据我所知,没有办法为字段创建自己的排序函数。我确实找到了http://sympletech.com/how-to-enable-case-insensitive-sorting-on-kendo-ui-grid/有人实现了你所要求的东西(他只是在做不区分大小写的排序)。

我不得不这样做一次(幸好在不可编辑的网格上,只是显示数据),我只是使用模板欺骗了网格。通过在数据绑定之前检查数据,向其中添加另一个属性来表示可以正确排序的数据,并将网格绑定到该列而不是原始列,但使用返回原始数据值的模板。

见 jsbin http://jsbin.com/ETaZOSu/1/edit

于 2013-09-25T19:55:02.043 回答