Параметр jqGrid '_search' не задан в URL - PullRequest
2 голосов
/ 22 июня 2011

У меня есть следующий код:

$("#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 NOTE : строка 5, где я вывожу значение postdata._search на консоль, консоль показывает postdata._search: true, как и ожидалось, так что, кажется, работает как ожидалось.

Кажется, что все остальные параметры проходят через очень хорошо.

ОБНОВЛЕНИЕ

Кажется, что еслиСначала я использую встроенную кнопку поиска (маленький значок увеличительного стекла в jqGrid), то есть корректно задает параметр "_search = true" - и после этого моя кнопка работает нормально.Не уверен, какова связь между ними, но, по сути, мне кажется, что мой параметр все равно игнорируется.Например, если я выполняю поиск через увеличительное стекло и изменяю свой javascript так, чтобы в LINE 5 читалось postdata._search = false, оно проходит _search=true (другими словами, LINE 5, похоже, полностью игнорируется).Хотите знать, если я просто устанавливаю неправильную переменную на postdata

1 Ответ

3 голосов
/ 22 июня 2011

Я ответил на уже закрытый вопрос как и у вас.Проблема в том, что вы должны установить параметр 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}]);
});
...