У меня есть страница 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. Это поле 'blah' - поле даты, и оно правильно отображает даты в формате mm/dd/yyy. Однако, когда я ввожу что-то вроде 11/17/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. У кого-нибудь есть идеи, как это исправить? Я знаю, что искать на стороне сервера легко, я могу просто передать строку, разобрать ее, и бам. Но я бы хотел остаться на стороне клиента, если это возможно. Я смог продублировать это в некоторых примерах, которые выложили Олег и Том, так что это либо проблема, либо я что-то упускаю в конфигурации...