параметр jqGrid 'search' не задается в URL
У меня есть следующий код:
$("#perform_search").click(function() {
var postdata = $("#translationsList").jqGrid('getGridParam','postData');
postdata._search = true;
postdata.searchString = $("#auto_complete_search").val();
console.log('postdata._search: ' + postdata._search);
jQuery("#translationsList").trigger("reloadGrid", [{page:1}]);
});
Когда я нажимаю на кнопку с идентификатором perform_search, результирующий URL-адрес находится ниже, а значение searchString=hello извлекается из текстового поля с идентификатором auto_complete_search:
[domainname]/translations_feed.php?language_cd=EN&_search=false&nd=1308754288459&rows=20&page=1&sidx=phrase&sord=asc&searchString=hello
... и то, что должно произойти, - это то, что строка URL имеет _search=true, но, как вы можете видеть из примера URL, передаваемое значение _search=false Примечание : строка 5, где я вывожу значение postdata._search на консоль, консоль показывает postdata._search: true как и ожидалось, так что, похоже, все работает, как и ожидалось.
Похоже, что все остальные парамы проходят через это просто прекрасно.
Обновить
Похоже, что, если я сначала использую встроенную кнопку поиска (значок маленькой лупы в jqGrid), то есть правильно устанавливаю параметр "_search=true" - и после этого моя кнопка работает нормально. Не знаю, какая связь между ними есть, но по существу кажется, что мой парам все еще игнорируется в любом случае. Для например, если я выполняю поиск через увеличительное стекло и изменяю свой javascript так, что строка 5 читает postdata._search = false, она проходит _search=true (другими словами, строка 5, кажется, полностью игнорируется).
Интересно, если я просто устанавливаю неправильную переменную на postdata
1 ответ:
Я ответил на уже закрытый вопрос, подобный вашему. Проблема в том, что вы должны установить параметр
Другими словами, чтобы задатьsearchна самой jqGrid, а не пытаться изменить postData таким образом._searchкакtrue, необходимо задатьsearchпараметр jqGrid вtrueи не задавать никаких свойствpostDataнапрямую. Аналогично, вы не должны устанавливатьpageпараметрpostData. Вместо этого используйте параметрrowNum.Итак, ваш код должен быть намного проще:
$("#perform_search").click(function() { $("#translationsList").jqGrid('setGridParam', { search: true, postData: { searchString:$("#auto_complete_search").val() } }); jQuery("#translationsList").trigger("reloadGrid", [{page:1}]); });
Comments