2

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文字列にエンコードする方法を見つけて、テーブル列のカスタムフォーマッターを用意することです。

誰か助けてもらえますか?

ありがとうジェフポーター

4

3 に答える 3

3

フォーマットされた日付文字列ではなく、dataTimelong値を渡すように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"});

そしてそれは動作します!!!

ええ!

于 2010-10-19T10:36:15.513 に答える
1

JSONのベストプラクティスは、ISO日付を使用することです

2010-10-18T09:01:00
2010-10-18T09:03:00
2010-10-19T09:02:00

文化的に中立であり、プレーンテキストの並べ替えを使用して適切に並べ替えます。

次に、dojox.gridを使用して、これをDateオブジェクトに変換するフォーマッターを宣言し、表示する日付の文化的に適切な表現を生成できます。

于 2010-10-26T00:12:01.843 に答える
0

ストアのcomparatorMapパラメーターを指定することもできます。

{fieldname: compareFunction} 
于 2010-11-09T15:26:58.880 に答える