jqgridがあり、「column1」へのカスタムフォーマッターがあります。「column1」を日付として並べ替える必要があります。「formatter:date」を指定できることはわかっていますが、これを指定すると、カスタムフォーマッターが機能しません。2つのフォーマッターを使用できますか、それとも他のオプションがありますか?
前もって感謝します!
jqgridがあり、「column1」へのカスタムフォーマッターがあります。「column1」を日付として並べ替える必要があります。「formatter:date」を指定できることはわかっていますが、これを指定すると、カスタムフォーマッターが機能しません。2つのフォーマッターを使用できますか、それとも他のオプションがありますか?
前もって感謝します!
いいえ、フィールドごとに1つのフォーマッターしか持てませんが、カスタムフォーマッターは、基になるデータの値に応じて複数のフォーマッターを呼び出すなど、何でも実行できます。いずれの場合も、フォーマッターはデータの表示方法を制御するために使用されますが、行の並べ替え方法には影響しません。
ローカルデータを使用している場合は、このsorttype
オプションを使用して、データの行を並べ替える方法を決定できます。並べ替えは、セルの実際の値に基づいています。カスタムフォーマッタを使用して、必要なフォーマットを自由に行うことができます。
または、サーバー側で並べ替えを行っている場合でも、同じアプローチを使用できると思います。必要なカスタムフォーマッターを定義し、列の基になる日付値を使用して並べ替えるだけです。
unformat
カスタムフォーマッタを使用するときに元のデータを取得するために使用できるオプションがあること
にも注意する必要があります。ここでは必要ないと思いますが、使用する必要がある場合に備えて言及したいと思います。
それはまったく役に立ちますか?
カスタムフォーマッタ関数から日付フォーマッタを呼び出すには、最初に:に適切なオプションを設定する必要がありますcolmodel
。
formatoptions: { srcformat:'m/d/Y', newformat:'ShortDate' },
次に、カスタムフォーマッタ内から、他の関数と同じように日付フォーマッタを呼び出すことができます。
function myFormatter (cellvalue, options, rowObject) {
return $.fn.fmatter.date(cellvalue, options, rowObject);
}
私はそれをテストしていませんが、上記はうまくいくはずです。どうなるか教えてください...