【问题标题】:jqgrid + sorting of number with blanksjqgrid +用空格对数字进行排序
【发布时间】:2012-05-10 10:00:55
【问题描述】:

我的 JQgrid 中有一个列是“大小”。返回类型是整数。我已添加:

{
  name:'sizeKloc',
  index:'sizeKloc', 
  width:60, 
  editable:false, 
  sorttype: 'int', 
  align:'right'
},

在某些情况下,值作为null 传递。

我的列有以下值 - 0、3、5、null(空白或空格)、1、null(空白或空格)、null(空白或空格)、2、3

但是当我尝试对 ASC 进行排序时,应该先在空格之后进行实际的数字排序,但这不会发生。

感谢任何帮助。

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    如果你真的想持有null并将其与0区分开来,你可以使用custom sorting而不是sorttype: 'int'。用法很简单。您只需定义可用于排序的值的替换,而不是数据的原始值。

    在你的情况下,例如

    {name:'sizeKloc',index:'sizeKloc', width:60, editable:false, align:'right'
        sorttype: function (cellValue) {
            return cellValue === null ? -1000 : Number(cellValue);
        }},
    

    {name:'sizeKloc',index:'sizeKloc', width:60, editable:false, align:'right'
        sorttype: function (cellValue) {
            var num = parseInt(cellValue, 10);
            return isNaN(num) ? -1000 : num;
        }},
    

    确切的代码更多地取决于您使用的数据的格式和类型。

    【讨论】:

    • 嗨,奥列格。这行得通。非常感谢你,但我对此有另一个担忧。当我进行升序排序时,空格显示在数字之后,但我希望空格出现在数字之前。任何帮助表示赞赏。谢谢
    • @komalsalvi:您可以测试cellValue,不仅可以测试null,还可以测试空字符串。在 sorttype 的情况下,您可以返回小数(如 -1000)或大数。我认为它应该可以解决问题。
    • @komalsalvi:你的最后一条评论好像被删了。我认为可以通过使用sorttype 作为函数来实现任何本地排序。关于使用排名我可以推荐阅读the answer和对应demo的最新版本here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2015-02-08
    • 2014-02-03
    • 2016-08-16
    • 1970-01-01
    • 2018-02-24
    相关资源
    最近更新 更多