параметр 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

464   1  

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

    Ничего не найдено.