如何在jqgrid中对数字列进行排序

时间:2013-07-02 13:31:18

标签: jqgrid

在我的jqGrid中,我有一个具有以下格式的列:' 1.234,678'。我想对此列进行排序,我正在使用此代码:

{name:'ZMENG_SOR_VRKME', index:'ZMENG_SOR_VRKME', width:'5', align:'right', sorttype:'number' }

排序不起作用。我认为它不考虑。(点)数千,例如,如果我有21,000 - 991,000 - 1.188,000。结果是:991,000 - 21,000 - 1.188,000。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

如果我正确理解您的问题,您应该更改网格中填充的数据格式。您应该使用纯数字作为输入,并使用formatter: "number"在数字中包含千位分隔符。在我看来,这将是解决问题的最佳方式。您可以使用正确的语言文件grid.locale-XX.js将使用与区域设置相对应的千位分隔符。或者,您可以使用decimalSeparator的{​​{1}}和thousandsSeparator来指定自定义小数和千位分隔符。

或者,您可以提供无格式化(formatoptions函数描述here),将单元格中显示的文本转换为数字。我认为它应该有用。

另一种可能性是使用自定义排序。您需要将unformat定义为函数,该函数将返回数据的“规范化”版本。在排序期间将使用“标准化”数据而不是原始数据。有关代码示例,请参阅the answerthis one

更新: Free jqGrid提供了一些标准模板,例如sorttypetemplate: "integer"number: "number"template: "integerStr"等。因此可以使用

number: "numberStr"

这相当于

的用法
{name: "ZMENG_SOR_VRKME", width: 50, template: "numberStr" }