2013-06-24 51 views
0

我的jqGrid定制格式化列具有已定制应用格式的量列和结果可以是本身的量,或特殊字符(例如:*“”,NA,图像)。所有特殊字符都是需要的,因为它描述了数量的种类。 (用于如:*表示未授权用户看到的金额)排序中的jqGrid

我的挑战是我怎么解决这。

以下是我的金额列的列模型。

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

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

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

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

我该如何以适当的方式实现排序。

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

感谢, 山姆

回答

2

如果使用自定义格式,把文本像*imageNA100130在您将无法使用sorttype is "float"列。

我会建议你使用自定义排序代替。你需要的只是定义sorttype作为函数。在这种情况下就可以更换数据至将排序代替原来的过程中可以使用其他值。所以,你可以例如替换值"*""image""NA"100130"*""image""NA""000100""000130"(所有的值都是字符串现在)。在这种情况下,数据窗口成功地按照字符串排序。或者,您甚至可以使用原始号码100,180,120,130,160。函数sorttype获得obj作为第二个参数,obj表示该行的完整数据。如果您保留原始值,则可以使用它进行排序。你不会发布任何代码来显示你使用的是哪种jqGrid,以及你如何填充它,所以我现在无法得到更多的细节。

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