在jqgrid中对自定义格式的列进行排序
我的jqgrid有一个amount列,该列应用了自定义格式,结果可以是amount本身,也可以是特殊字符(例如:“*”,NA,image)。所有特殊字符都是必需的,因为它描述了金额的种类。 (例如:*表示用户无权查看金额) 我的挑战是如何对其进行排序 下面是我的“金额”列的列模型在jqgrid中对自定义格式的列进行排序,jqgrid,jqgrid-formatter,Jqgrid,Jqgrid Formatter,我的jqgrid有一个amount列,该列应用了自定义格式,结果可以是amount本身,也可以是特殊字符(例如:“*”,NA,image)。所有特殊字符都是必需的,因为它描述了金额的种类。 (例如:*表示用户无权查看金额) 我的挑战是如何对其进行排序 下面是我的“金额”列的列模型 [name: 'amount', index: 'amount', type: "String", align: "right", sorttype: "float", title: false, formatter
[name: 'amount', index: 'amount', type: "String", align: "right", sorttype: "float", title: false, formatter : someCustomFormatterFunction]
例如:
假设我的金额数据是这样的[100180120130160]
但是,在自定义格式设置后,此更改为[100,*,image,130,NA]
我的排序类型是“float”。因为最初要求的只是金额。但更新的需求引入了这些特殊特性
现在,在排序上,我应该看到所有的特殊字符和数字在一起。类似于[100130,*,image,NA]或[*,image,NA,100130]的升序
但是,我得到的是[100,image,130,NA,*]。我能理解为什么我会变成这样
如何以适当的方式实现排序
此外,下一步将是按照指定的顺序对特殊字符进行排序。
我所有的想法都在引导我去实现一些丑陋的大逻辑。
关于如何实施这一点,有什么想法吗
谢谢,
Sam如果使用自定义格式,并将文本如
*
,图像
,NA
,100
,130
放置在列中,则无法使用排序类型为“float”
我建议您改为使用自定义排序。您需要的只是将sorttype
定义为函数。在这种情况下,您可以将数据替换为另一个值,该值将在排序过程中使用,而不是原始值。例如,您可以将值“*”
,“image”
,“NA”
,100
,130
替换为“*”,“image”
,“NA”
,“000100”
,“000130”
(现在所有值都是字符串)。在这种情况下,数据可能会成功排序为字符串。或者,您甚至可以使用原始编号100
,180
,120
,130
,160
。函数sorttype
getobj
作为第二个参数,obj
表示行的完整数据。如果保留原始值,则可以使用它进行排序。您没有发布任何代码来显示您使用哪种jqGrid,以及如何填充它,所以我现在无法向您提供更多详细信息
有关自定义排序的更多详细信息和代码示例,请参见和