dojox.grid.DataGrid benutzerdefinierte Sortiermethode?
-
09-10-2019 - |
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
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}