jquery 插件 - 未在 URL 中设置 jqGrid '_search'参数



我有以下代码:

$("#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&amp_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,使LINE 5读取postdata._search = false,它通过_search=true(换句话说,LINE 5似乎被完全忽略)。

想知道我是否只是在postdata 上设置了错误的变量

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

换句话说,要将_search设置为true,您应该将jqGrid的search参数设置为true,而不是直接设置postData的任何属性。同样,您不应该设置postDatapage参数。请改用rowNum参数。

因此,您的代码应该简单得多:

$("#perform_search").click(function() {    
  $("#translationsList").jqGrid('setGridParam', { search: true, postData: { searchString:$("#auto_complete_search").val() } });
  jQuery("#translationsList").trigger("reloadGrid", [{page:1}]);
});

最新更新