在jqgrid中对自定义格式的列进行排序

时间:2013-06-24 11:39:07

标签: jqgrid jqgrid-formatter

我的jqgrid有一个数量列,其中应用了自定义格式,结果可以是数量本身,或特殊字符(例如:*,“”,NA,图像)。需要所有特殊字符,因为它描述了金额的类型。 (例如:*表示用户无权查看金额)

我的挑战是如何对此进行排序。

以下是金额列的列模型。

[name: 'amount', index: 'amount', type: "String", align: "right", sorttype: "float", title: false, formatter : someCustomFormatterFunction]

例如: 假设我的金额数据是这样的[100,180,120,130,160] 但是在自定义格式化后,这更改为[100,*,图像,130,NA] 我的sorttype是“浮动”。因为要求最初仅用于金额。但更新后的要求引入了这些特殊字符。

现在,在排序时,我应该看到所有特殊字符和数字在一起。类似于[100,130,*,图像,NA]或[*,图像,NA,100,130]的升序。

但是,我得到的是[100,图像,130,NA,*]。我能理解为什么我会这样。

如何以正确的方式实现排序。

此外,下一步是按指定的顺序对特殊字符进行排序。 我所有的想法都在带我实现一些丑陋的大逻辑。 有没有关于如何实现这一点的想法。

谢谢, 萨姆

1 个答案:

答案 0 :(得分:2)

如果您使用自定义格式并在列中放置*imageNA100130等文字,则无法使用使用sorttype is "float"

我建议你改用自定义排序。您需要的只是将sorttype定义为函数。在这种情况下,您可以数据替换为另一个值,该值将在排序时使用,而不是原始值。因此,您可以将值"*""image""NA"100130替换为"*""image",{ {1}},"NA""000100"(所有值现在都是字符串)。在数据sill成功排序为字符串的情况下。或者,您甚至可以使用原始数字"000130"100180120130。函数160获取sorttype作为第二个参数,obj表示行的完整数据。如果您保留原始值,则可以使用它进行排序。你没有发布任何显示你使用哪种jqGrid的代码,以及你如何填写它以便我现在无法获得更多细节。

有关自定义排序的详细信息和代码示例,请参阅the answerthis one