dojox.grid.datagridカスタムソートメソッド?
-
09-10-2019 - |
質問
dojox.grid.datagridがあり、列の1つに日付データが含まれています。例えば
09:01:00 18/10/2010
09:03:00 18/10/2010
09:02:00 19/10/2010
見出しをクリックして列を並べ替えると、これがわかります...
09:01:00 18/10/2010
09:02:00 19/10/2010
09:03:00 18/10/2010
文字列値を並べ替えて、日付値として並べ替えるため、19日は見当違いになります。
カスタムソーターの方法、またはそれがレンダリングするデータ型についてグリッドに伝えるための途方もないことを望んでいます。
var rawdataDeltaInfo = '[{'timestamp':'15:27:45 18/10/2010'}]';
<table id="gridDeltas" jsId="gridDeltas" dojoType="dojox.grid.DataGrid" store="deltaInfo" clientSort="false" >
<thead>
<tr>
<th field="timestamp" >Create Date</th>
</tr>
</thead>
</table>
別の方法は、JSON文字列に日付をエンコードし、テーブル列にカスタムフォーマッタを用意するための幾何を見つけることです。
誰かが助けることができますか?
ジェフ・ポーターに感謝します
解決
JSONを変更して、フォーマットされた日付文字列ではなく、データタイムの長い値を渡しました。
次に、dojox.grid.datagridを変更して、日付列のカスタムフォーマッタを作成しました。
dojo.require("dojo.date.locale");
formattedString = dojo.date.locale.format(new Date(jsonLongDate), {datePattern: "HH:mm:ss dd/MM/yyyy", selector: "date"});
そして、それは機能します!!!
ええ!
他のヒント
JSONでのベストプラクティスは、ISO日付を使用することです
2010-10-18T09:01:00
2010-10-18T09:03:00
2010-10-19T09:02:00
それは文化的に中立であり、プレーンテキストソートを使用して適切にソートします。
dojox.gridを使用すると、これを日付オブジェクトに変換するフォーマッタを宣言し、表示日付の文化的に適切な表現を生成できます。
また、Comparatormapパラメーターを提供することもできます お店.
{fieldname: compareFunction}
所属していません StackOverflow