jqGrid неправильно сортирует даты - PullRequest
17 голосов
/ 03 мая 2011

У меня проблема при сортировке дат с использованием jqGrid. Учитывая следующие даты

jqGrid сортирует мои даты следующим образом:

01/01/2010
01/01/2011
01/02/2010
01/02/2011

Я бы ожидал увидеть

01/01/2010
01/02/2010
01/01/2011
01/02/2011

Мой формат даты dd/mm/yyyy, и у меня есть следующие параметры формата -

{
    name: 'myDate',
    index: 'myDate',
    sortable: true,
    sorttype: 'date'
}

Я что-то здесь упустил или это ограничение jqGrid?

Ответы [ 3 ]

24 голосов
/ 03 мая 2011

Вы допустили типичную ошибку. Проблема в том, что jqGrid ожидает ввода дат в формате даты ISO 8601 : Y-m-d.

Если вы публикуете входные данные jqGrid в формате "дд / мм / гггг", вам следует добавить datefmt: 'm/d/Y' свойство к определению столбца.

Лучшим способом было бы заполнить данные даты сетки в формате ISO и преобразовать входные данные в любой другой формат только для отображения даты в jqGrid с использованием следующих настроек

formatter:'date', formatoptions: {newformat:'m/d/Y'}, datefmt: 'd-M-Y'

Сравните исходный код дерева демонстраций: это , это и это .

2 голосов
/ 24 февраля 2015

jqGrid не поддерживает сортировку по дате и времени, но только по дате.

На самом деле я обнаружил, что jqGrid поддерживает сортировку по дате и времени.

У нас есть веб-сервис JSON, в который даты (досадно) поступают в следующем формате:

'2/24/2015 9:48:04 AM'

jqGrid прекрасно мог сортировать по дате и времени, используя это:

colModel: [
  { name: "dt", sorttype: 'date', datefmt: 'm/d/yyyy h:i:s AmPm' }, 

jqGrid_Sorting

Это конкретное приложение использовало jqGrid 4.4.5 (с 2008 года), так что это не новая функция.

Надеюсь, это поможет.

1 голос
/ 23 мая 2014

jqGrid не поддерживает сортировку по дате и времени, а только по дате. Следовательно, вы можете использовать альтернативу, как указано в ее PDF, то есть показано в примере ниже. Если ваши данные в сетке уже отсортированы по дате и времени, и у вас также есть столбец с индексом всех строк, таких как числа, как 1, 2, 3, .... n. Вы можете отсортировать дату и время в столбце индекса. Это всегда гарантирует порядок asc или desc для datetime.

Вы можете отсортировать дату и время или дату в jqGrid по содержимому другого столбца. Например, в примере ниже на onSortCOl:

        onSortCol: function(name,index) { if(name == 'createDateTime') { jQuery("#viewNotesGrid").setGridParam({sortname:"ID"}); } }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...