0

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

我的挑战是如何排序。

以下是金额列的列模型。

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

例如:假设我的金额数据是这样的 [100, 180, 120, 130, 160] 但是在自定义格式化之后,它变成了 [100, *, image, 130, NA] 我的排序类型是“float”。因为要求最初仅针对金额。但是更新的要求引入了这些特殊字符。

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

但是,我得到它是 [100, image, 130, NA, *]。我能理解为什么我会变成这样。

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

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

谢谢,山姆

4

1 回答 1

2

如果您使用自定义格式并将文本如*, image, NA, 100,130放在列中,您将无法使用sorttype is "float"

我建议您改用自定义排序。你需要的只是定义sorttype为函数。在这种情况下,您可以将数据替换为另一个值,该值将在排序期间使用,而不是原始值。因此,例如,您可以将值"*", "image", "NA", 100,替换130"*", "image", "NA", "000100", "000130"(现在所有值都是字符串)。在这种情况下,数据仍然可以成功排序为字符串。或者,您甚至可以使用原始数字100, 180, 120, 130, 160。函数sorttypegetobj作为第二个参数和obj表示该行的完整数据。如果您持有原始值,则可以将其用于排序。您没有发布任何显示您使用哪种 jqGrid 以及如何填充它的代码,所以我现在无法为您提供更多详细信息。

有关自定义排序的更多详细信息和代码示例,请参阅答案这个

于 2013-06-24T14:41:58.327 回答