2

我有以下代码:

$("#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}]);
});

当我单击带有 ID 的按钮时perform_search,生成的 URL 如下,并且该值searchString=hello是从 id 为的文本字段中提取的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

4

1 回答 1

3

我回答了一个像你这样已经结束的问题。问题是您应该search在 jqGrid 本身上设置参数,而不是尝试以这种方式更改 postData。

换句话说,要设置_searchtrue您应该将searchjqGrid 的参数设置为,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}]);
});
于 2011-06-22T15:45:55.347 回答