dojox.grid.DataGrid пользовательский метод сортировки? - PullRequest
2 голосов
/ 19 октября 2010

У меня есть 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 и иметь собственный форматировщик для столбца таблицы?

Может кто-нибудь помочь?

Спасибо, Джефф Портер

Ответы [ 3 ]

3 голосов
/ 19 октября 2010

Я изменил 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"});

и все работает !!!

да !!

1 голос
/ 26 октября 2010

Лучшая практика с JSON - использовать даты ISO

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

Это культурно нейтрально и сортирует правильно, используя сортировку простого текста.

С помощью dojox.grid вы можете затем объявить модуль форматирования, который преобразует его в объект Date, а затем сгенерирует культурно соответствующее представление даты для отображения.

0 голосов
/ 09 ноября 2010

Вы также можете указать параметрcomptorMap для вашего магазина .

{fieldname: compareFunction} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...