使用jqGrid多个searching如何以编程方式“清除”搜索选项?
“clear”应该确保没有filters
被发送到服务器,并且GUI搜索框不包含任何搜索条件..
我们目前正在呼叫trigger("reloadGrid")
。我们想在reloadGrid之前调用clearSearchCrieria()
类型的方法,这样就不会将filters
传递给服务器或显示在GUI搜索框中。
...
答案 0 :(得分:16)
您可以使用以下方法:
function clearSearchOptions(){
$("#list").jqGrid('setGridParam', { search: false, postData: { "filters": ""} }).trigger("reloadGrid");
}
但正如Oleg指出的那样,如果你想要清除jqgrid搜索框,你必须在你的jqgrid定义中使用recreateFilter:true
选项。
答案 1 :(得分:6)
要重置过滤器,您可以直接修改jqGrid的postData
参数。您可以使用$("#list").jqGrid('getGridParam','postData')
或$("#list")[0].p.postData
访问它。如果设置了过滤器,则postData
的属性如下所示:
_search true Boolean
nd 1286296925096 Number
page 1 Number
rows 10 Number
searchField "id" String
searchOper "lt" String
searchString "5" String
sidx "id" String
sord "desc" String
要重置您可以执行的属性
var postdata = $("#list").jqGrid('getGridParam','postData');
postdata._search = false;
postdata.searchField = "";
postdata.searchOper = "";
postdata.searchString = "";
如果您使用Advanced Searching代替Single Searching,则应清除filters
属性,而不是searchField
,searchOper
和searchString
。
最后,您可以致电$("#list").trigger("reloadGrid",[{page:1}]);
重新加载包含从第1页开始的网格。
答案 2 :(得分:3)
要点击“重置”按钮,请尝试:
$(".ui-reset").click();
答案 3 :(得分:2)
我能做到正确的唯一方法 - 而且我确定它的方法不正确如下:
$("#grid").jqGrid('setGridParam', { postData: { filters: null} });
$("#gs_ColName1").val("");
$("#gs_ColName2").val("");
其中ColNameX是列的名称
答案 4 :(得分:2)
它将重置所有搜索选项
$('input[id*="gs_"]').val("");
答案 5 :(得分:1)
$("#resetFilterOptions").click(function(){
$('input[id*="gs_"]').val("");
$('select[id*="gs_"]').val("ALL");
$("#list").jqGrid('setGridParam', { search: false, postData: { "filters": ""} }).trigger("reloadGrid");
});
这个可以使用Rest Search选项并重新加载JQGrid
答案 6 :(得分:0)
$("#search").filterGrid("#list", {
gridModel: false,
enableSearch: true,
filterbutton: 'search_button',
enableClear:true,
filterModel: [{
label: 'First Name',
name: 'search',
stype: 'text'
});
在enableClear:true
filterGrid
答案 7 :(得分:0)
仅使用
$( “TD#refresh_navGrid”)点击();
答案 8 :(得分:0)
我添加了外部刷新按钮来解决这个问题。
<强> jgrid.jsp 强>
<sj:submit id="grid_refreshbutton" value=" Refresh" button="true"/>
<强> jgrid.js 强>
$(document).ready(function(){
jQuery("#grid_refreshbutton").click(function(){
var postData = $("#gridtable").jqGrid('getGridParam','postData');
$("#gridtable").jqGrid('setGridParam',{search:false});
$.extend(postData, { filters: "" });
for (k in postData) {
if (k == "_search")
{ postData._search = false;}
else if ($.inArray(k, ["nd", "sidx", "rows", "sord", "page", "filters"]) < 0) {
delete postData[k];
("#gs_" + $.jgrid.jqID(k), $("#gridtable").get(0).grid.hDiv).val("");
}
}
$("#gridtable").trigger("reloadGrid", [{ page: 1}]);
});
感谢/此致 Khine lae