我有以下代码:
$("#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,使LINE 5读取postdata._search = false
,它通过_search=true
(换句话说,LINE 5似乎被完全忽略)。
想知道我是否只是在postdata
上设置了错误的变量
我回答了一个像你这样已经结束的问题。问题是,您应该在jqGrid本身上设置search
参数,而不是试图以这种方式更改postData。
换句话说,要将_search
设置为true
,您应该将jqGrid的search
参数设置为true
,而不是直接设置postData
的任何属性。同样,您不应该设置postData
的page
参数。请改用rowNum
参数。
因此,您的代码应该简单得多:
$("#perform_search").click(function() {
$("#translationsList").jqGrid('setGridParam', { search: true, postData: { searchString:$("#auto_complete_search").val() } });
jQuery("#translationsList").trigger("reloadGrid", [{page:1}]);
});