Ответ 1
Ваша основная ошибка заключается в использовании параметра postData
в форме:
postData: $("#myForm").serialize()
Это использование имеет две проблемы:
- Значение
$("#myForm").serialize()
перезаписывает все параметры запросов POST вместо добавления дополнительных параметров. - Значение
$("#myForm").serialize()
будет вычисляться только один раз во время инициализации сетки. Поэтому вы всегда будете отправлять сообщенияsearch=""
иmaxPrice=""
на сервер.
Я предлагаю вам заменить форму именованными полями редактирования на
<fieldset>
<input type='text' id='search' />
<input type='text' id='maxPrice' />
<button type='button' id='startSearch'>Search</button>
</fieldset>
определить postData
параметр как объект с помощью методов:
postData: {
search: function() { return $("#search").val(); },
maxPrice: function() { return $("#maxPrice").val(); },
},
и добавьте обработчик события onclick
к кнопке "Поиск" (см. выше фрагмент HTML)
$("#startSearch").click(function() {
$("#myGrid").trigger("reloadGrid");
});
Кроме того, вы ничего не пишете о технологии сервера, которую вы используете. Возможно, потребуется дополнительная модификация, чтобы читать параметры на стороне сервера (например, serializeRowData: function (data) {return JSON.stringify(data);}
см. this и это). Я рекомендую вам также прочитать еще один старый ответ: Как фильтровать данные jqGrid NOT, используя встроенный блок поиска/фильтра.
Некоторые другие небольшие ошибки, такие как '/Products/Search") %>'
вместо "/Products/Search" или использование устаревшего параметра imgpath
(см. documentation) менее важны. Параметры столбца по умолчанию, такие как align: 'left'
, должны быть удалены лучше.
Рассмотрим также использование поиска в сетке. Например предварительный поиск
$("#myGrid").jqGrid('navGrid','#pager',
{add:false,edit:false,del:false,search:true,refresh:true},
{},{},{},{multipleSearch:true});
а также поиск панели инструментов:
$("#myGrid").jqGrid('filterToolbar',
{stringResult:true,searchOnEnter:true,defaultSearch:"cn"});
он может, вероятно, заменить форму поиска, которую вы используете.