У меня есть страница ASP.NET MVC 3. На нем у меня есть таблица, которую я превращаю в jqGrid, используя данные JSON из вызова ajax. Сетка имеет следующую настройку:
myGrid = $('#myGrid');
myGrid.jqGrid({
caption: 'My Grid',
datatype: 'local',
data: data.rows,
height: 250,
pager: '#myPager',
viewrecords: true,
colModel: [
...,
{
label: 'blah',
name: 'blah',
align: 'left',
sortable: true,
editable: false,
width: 85,
formatter: 'date',
sorttype: 'date',
datefmt: 'm/d/Y',
formatoptions: { srcformat: 'm/d/Y', newformat: 'm/d/Y' }
},
...
]
});
// turn on filter toolbar
myGrid.filterToolbar();
data.rows возвращается из вызова ajax. Это работает во всех отношениях, кроме одного. Я могу разбивать на страницы на стороне клиента, сортировать на стороне клиента и выполнять поиск по каждому полю, кроме того, для которого я показываю colModel. Это «бла» поле является полем даты и правильно отображает даты в формате мм / дд / гггг. Однако, когда я набираю что-то вроде 17.11.2010 на панели инструментов и нажимаю ввод, поиск возвращает 0 записей.
Итак, я углубился в код jqGrid, и вот что он генерирует перед поиском:
{"groupOp":"AND","rules":[{"field":"blah","op":"bw","data":"11/17/2010"}]}
В конце концов, когда он проходит через каждую строку и оценивает операцию над полем, строка eval (m) && p.push (this), m это:
(String(this.blah).substr(0,10) == String("11/17/2010"))
По сути, мне кажется, что он не признает, что поле является датой. Он вызывает parse вместо parseDate. У кого-нибудь есть идеи, как это исправить? Я знаю, что поиск на стороне сервера очень прост, я могу просто пропустить эту строку, разобрать ее и bam. Но я бы хотел остаться на стороне клиента, если смогу. Мне удалось продублировать это в некоторых примерах, которые поставили Олег и Том, так что это либо проблема, либо я что-то упустил в конфигурации ...