Вопрос

У меня есть dojox.grid.dataGrid, и одна из столбцов имеет данные даты в нем. например

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, чтобы пройти за длительное значение Datatime, а не строка даты отформатированной даты.

Затем я изменил 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 вы можете затем объявить Fixter, который переводит это на объект даты, затем генерирует культурно подходящее представление даты отображения.

Вы также можете дать сравнительный параметр для вашего хранить.

{fieldname: compareFunction} 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top