ルシアンが言ったように、独自のソート方法を書くことができます。ドキュメントで読めるように、NestedSorting
プラグインを追加することでカスタムソートを有効にすることができます。これを行うには、次を追加します。
dojo.require("dojox.grid.enhanced.plugins.NestedSorting");
nestedSorting: true
その後、グリッド オブジェクトに属性を設定するだけで済みます。
並べ替え自体はグリッドではなく、ストアに依存します。カスタム ソートの詳細については、 のドキュメントを参照してItemFileReadStore
ください。あなたがしたいことは次のようなものです:
grid.store.comparatorMap = new Object();
grid.store.comparatorMap["col1"] = function(a, b) {
if (a.toLowerCase() < b.toLowerCase()) {
return -1;
} else if (a.toLowerCase() == b.toLowerCase()) {
return 0;
} else {
return 1;
}
};
の比較マップを変更したことがわかるようにcol1
、これを必要な列に変更する必要があります。関数自体は純粋な JavaScript であり、多くの言語で比較のように機能します。ソート時に文字列 a が文字列 b より前に来る場合は負の数 (-1) を返し、両方の文字列が等しい場合は 0 を返す必要があり、文字列 b が文字列 a より前に来る場合は 1 にする必要があります。両方の文字列の小文字のバリアントを比較します。
以前の JSFiddle (前の質問) を新しい追加で更新し、Dojo 1.6 でテストしました。結果はこちらでご覧いただけます。