2013-10-07 3 views
2

Я использую jqGrid в MVC 4 для отображения данных. У меня есть сетки с столбцом date/datetime. Я возвращаю C# DateTime переменные данные для столбца даты сетки; который показывает штраф с formatoption: {srcformat: 'm/d/Y', newformat: 'm/d/Y'} для столбца даты & formatoption: {srcformat: 'm/d/Y h:i:s', newformat: 'm/d/Y h:i:s A'} для столбца datetime. но сортировка этого столбца не отражает, когда пользователь щелкает заголовок столбца. вот colModel для колонки датыjqGrid Date column sort не работает с sorttype: 'date'

{ 
    name: 'TestOrderDate', index: 'TestOrderDate', formatter: 'date', 
    sorttype: 'date', width: 90, align: 'center', fixed: true, 
    formatoptions: { srcformat: 'm/d/Y', newformat: 'm/d/Y' } 
}, 

& для даты и времени колонке

{ 
    name: 'TestOrderDate', index: 'TestOrderDate', formatter: 'date', 
    sorttype: 'date', width: 90, align: 'center', fixed: true, 
    formatoptions: { srcformat: 'm/d/Y h:i:s', newformat: 'm/d/Y h:i:s A' } 
}, 

Может кто-нибудь сказать мне, что случилось в colModel из-за чего-то поведение не работает.

+0

Какой тип данных вы используете? Вы используете опцию loadonce: true? – Oleg

+0

Я использую loadonce: истинная настройка & тип данных jason для сетки. – Shaggy

+0

Какую версию jqGrid вы используете? Не могли бы вы изменить формат даты, возвращенной с сервера, на [ISO 8601] (http://en.wikipedia.org/wiki/ISO_8601)? Рекомендуется использовать формат, независимый от проблемы, которую вы объясняете. В этом случае вы можете использовать 'srcformat:« ISO8601Long ». – Oleg

ответ

0

Я рекомендую вам обновить 2.5-летнюю версию 4.1.1 до версии 4.5.4. Он содержит новую реализацию синтаксического анализа даты. Чтобы отсортировать столбец с параметром sorttype:'date', jqGrid сначала проанализирует (неформатирует) строку, отображаемую в сетке. Форматы, подобные 'm/d/Y h:i:s A', не поддерживаются для разбора (и сортировки) в старых версиях jqGrid.

Версии jqGrid, начиная с 4.3.2, не нуждаются в файле ellipsis-xbl.xml. Он использовался в ранних версиях для отображения многоточия в старых версиях браузеров Mozilla/Firefox. The line от ui.jqgrid.css был заменен на the line, начиная с 4.3.2.

+0

Пожалуйста, ознакомьтесь с обзором вопросов и резюме решения для моей проблемы. – Shaggy

+1

@Shaggy: Извините, но ваши последние изменения в вопросе кажутся, что вы пытаетесь опубликовать ** новый вопрос ** действительно. Основной задачей stackoverflow является * совместное использование общих вопросов и соответствующих ответов *. Любые коммутативные вопросы, снижающие эффективность поиска, и другие пользователи не могут найти то же самое в stackoverflow. Поэтому, пожалуйста, всегда задавайте ** отдельные вопросы **. – Oleg

+0

@Shaggy: Если я правильно понимаю, что вам нужно, это использование '$ .jgrid.parseDate' или' $ .fn.fmatter.call (это «дата», cellval, opts, rowObject, action) 'in of' LoadCPAPFollowUpDialog'. Я отправлю свой ответ после того, как вы отделите свой вопрос. – Oleg

2

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

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

  onSortCol: function(name,index) { if(name == 'createDateTime') { jQuery("#viewNotesGrid").setGridParam({sortname:"ID"}); } } 
0

Моего исправление обмануть jqGrid для загрузки Int, но отобразить дату.

мой colModel является {имя: 'startDt', индекс: 'startDt', ширина: 50, сортировкой: правда, sorttype: 'INT', форматировщик: 'дата', FormatOptions: {srcformat: «U», newformat: «ДМГ»}},

при загрузке данных сетки, преобразовать строку даты в миллисекундах, деленное на 1000. Таким образом, в моем случае startDt очень большое целое значение.

Если ваша дата пуста/null, просто загрузите сетку с помощью '.

Хорошо, что пустая/нулевая сортировка сортируется правильно. По возрастанию имеет пробел/нуль (ы), у Descending пробел/null (s) последний.

Смежные вопросы