Frage

Ich habe eine dojox.grid.DataGrid, und eine der Spalten Datum Daten enthält. z.

09:01:00 18/10/2010
09:03:00 18/10/2010
09:02:00 19/10/2010

Als ich die Überschrift klicken und sortieren Sie die Spalte, erhalte ich diese ...

09:01:00 18/10/2010
09:02:00 19/10/2010    
09:03:00 18/10/2010

Es hat sich auf dem String-Wert sortiert, nicht als Datumswert sortieren, damit die 19. verlegt wird.

Ich mag eine benutzerdefinierten Sortierer Methode haben, oder someway das Gitter über den Datentyp zu sagen, dass es macht.

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>

Die Alternative ist someway zu finden das Datum in das JSON-String zu kodieren, und haben einen benutzerdefinierten Formatierer für die Tabellenspalte?

Kann mir jemand helfen?

Danke Jeff Porter

War es hilfreich?

Lösung

Ich habe die JSON geändert, um den Datatime Long-Wert zu übergehen, nicht das Format Datum String.

Dann habe ich die dojox.grid.DataGrid geändert, um einen benutzerdefinierten Formatierer für die Datumsspalte haben.

dojo.require("dojo.date.locale");
formattedString = dojo.date.locale.format(new Date(jsonLongDate), {datePattern: "HH:mm:ss dd/MM/yyyy", selector: "date"});

und es funktioniert !!!

ja !!

Andere Tipps

Aus der Praxis mit JSON ist ISO Daten zu verwenden,

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

Es ist kulturell neutral und Sorten richtig Klartext über Sortier.

Mit dojox.grid, können Sie dann ein Formatierungsprogramm erklären, dass dies zu einem Date-Objekt übersetzt, erzeugt dann eine kulturell angemessene Darstellung des Datums für die Anzeige.

Sie können auch geben comparatorMap Parameter für Ihren speichern .

{fieldname: compareFunction} 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top