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、画像、130、NA、*] として取得しています。なぜ私がこのようになっているのか理解できます。

適切な方法で並べ替えを行うにはどうすればよいですか。

また、次のステップは、特殊文字も指定された順序でソートすることです。私の考えはすべて、醜い大きなロジックを実装するように私を導きます。これを実装する方法についてのアイデアはありますか。

ありがとう、サム

4

1 に答える 1

2

*カスタム書式を使用して、、、、のようなテキストを列に配置するとimage、使用できなくなります。NA100130sorttype is "float"

代わりにカスタムソートを使用することをお勧めします。必要なのはsorttype、関数として定義することだけです。この場合、元の値の代わりにソート中に使用される別の値にデータを置き換えることができます。たとえば、値, , ,を, , ,に置き換えることができます (現在、すべての値は文字列です)。この場合、データは文字列として正常にソートされます。または、元の番号、、、 、を使用することもできます。関数getは 2 番目のパラメーターとして、"*""image""NA"100130"*""image""NA""000100""000130"100180120130160sorttypeobjobj行の完全なデータを表します。元の値を保持している場合は、並べ替えに使用できます。どの種類の jqGrid を使用しているか、どのように入力しているかを示すコードを投稿していないため、詳細を取得することはできません。

カスタムソートの詳細とコード例については、回答これを参照してください。

于 2013-06-24T14:41:58.327 に答える