4

jqgridがあり、「column1」へのカスタムフォーマッターがあります。「column1」を日付として並べ替える必要があります。「formatter:date」を指定できることはわかっていますが、これを指定すると、カスタムフォーマッターが機能しません。2つのフォーマッターを使用できますか、それとも他のオプションがありますか?

前もって感謝します!

4

1 に答える 1

2

いいえ、フィールドごとに1つのフォーマッターしか持てませんが、カスタムフォーマッターは、基になるデータの値に応じて複数のフォーマッターを呼び出すなど、何でも実行できます。いずれの場合も、フォーマッターはデータの表示方法を制御するために使用されますが、行の並べ替え方法には影響しません。

ローカルデータを使用している場合は、このsorttypeオプションを使用して、データの行を並べ替える方法を決定できます。並べ替えは、セルの実際の値に基づいています。カスタムフォーマッタを使用して、必要なフォーマットを自由に行うことができます。

または、サーバー側で並べ替えを行っている場合でも、同じアプローチを使用できると思います。必要なカスタムフォーマッターを定義し、列の基になる日付値を使用して並べ替えるだけです。


unformatカスタムフォーマッタを使用するときに元のデータを取得するために使用できるオプションがあること にも注意する必要があります。ここでは必要ないと思いますが、使用する必要がある場合に備えて言及したいと思います。

それはまったく役に立ちますか?


アップデート

カスタムフォーマッタ関数から日付フォーマッタを呼び出すには、最初に:に適切なオプションを設定する必要がありますcolmodel

formatoptions: { srcformat:'m/d/Y', newformat:'ShortDate' },

次に、カスタムフォーマッタ内から、他の関数と同じように日付フォーマッタを呼び出すことができます。

function myFormatter (cellvalue, options, rowObject) {
    return $.fn.fmatter.date(cellvalue, options, rowObject);
}

私はそれをテストしていませんが、上記はうまくいくはずです。どうなるか教えてください...

于 2012-06-18T15:10:06.550 に答える