【问题标题】:Sort a custom formatted column in jqgrid在 jqgrid 中对自定义格式的列进行排序
【发布时间】:2013-06-24 11:39:07
【问题描述】:

我的 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] 我的排序类型是“浮动”。因为要求最初仅针对金额。但更新后的要求引入了这些特殊字符。

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

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

我怎样才能以正确的方式实现排序。

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

谢谢, 山姆

【问题讨论】:

    标签: jqgrid jqgrid-formatter


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多