我的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,*]。我能理解为什么我会这样。
如何以正确的方式实现排序。
此外,下一步是按指定的顺序对特殊字符进行排序。 我所有的想法都在带我实现一些丑陋的大逻辑。 有没有关于如何实现这一点的想法。
谢谢, 萨姆
答案 0 :(得分:2)
如果您使用自定义格式并在列中放置*
,image
,NA
,100
,130
等文字,则无法使用使用sorttype is "float"
。
我建议你改用自定义排序。您需要的只是将sorttype
定义为函数。在这种情况下,您可以将数据替换为另一个值,该值将在排序时使用,而不是原始值。因此,您可以将值"*"
,"image"
,"NA"
,100
,130
替换为"*"
,"image"
,{ {1}},"NA"
,"000100"
(所有值现在都是字符串)。在数据sill成功排序为字符串的情况下。或者,您甚至可以使用原始数字"000130"
,100
,180
,120
,130
。函数160
获取sorttype
作为第二个参数,obj
表示行的完整数据。如果您保留原始值,则可以使用它进行排序。你没有发布任何显示你使用哪种jqGrid的代码,以及你如何填写它以便我现在无法获得更多细节。
有关自定义排序的详细信息和代码示例,请参阅the answer和this one。