如何在每次打开搜索对话框时在jqgrid中设置搜索筛选器

如何在每次打开搜索对话框时在jqgrid中设置搜索筛选器,jqgrid,Jqgrid,我正在我的项目中使用jqgrid高级搜索。一切正常。现在我必须在单击搜索按钮时显示默认搜索条件。请告诉我如何才能做到这一点。我在beforeShowSearch中尝试了以下代码 var postdata = { filters: '{"groupOp":"AND","rules":[' + '{"field":"invdate","op":"gt","data":"2

我正在我的项目中使用jqgrid高级搜索。一切正常。现在我必须在单击搜索按钮时显示默认搜索条件。请告诉我如何才能做到这一点。我在beforeShowSearch中尝试了以下代码

var postdata = 
                {
                    filters: '{"groupOp":"AND","rules":[' +
                            '{"field":"invdate","op":"gt","data":"2007-09-06"}]}'
                };
                grid.jqGrid('setGridParam', { search: true, postData: postdata });

它不起作用。

如果您需要在每次打开高级搜索对话框时重置搜索过滤器,您不能在这种情况下使用
beforeShowSearch
回调,因为在调用
beforeShowSearch
之前,搜索对话框将读取
postData.filters
。您可以添加与原始搜索按钮完全相同的自定义搜索按钮,并使用的
search:false
选项不使用标准按钮。在
onClickButton
的内部,您可以在调用之前重置
postData
filters
属性

或者,您可以在
loadComplete
回调中重置
postData.filters
的值,并使用高级搜索的
recreateFilter:true
选项在每次打开搜索对话框时强制创建新过滤器

演示最后一种方法。它首先定义变量

var defFilter='{“groupOp”:“AND”,“rules”:[{“field”:“invdate”,“op”:“gt”,“data”:“2007-09-06”}]}';
并使用
loadComplete
重置过滤器

loadComplete:函数(){
$(this).jqGrid(“getGridParam”,“postData”).filters=defFilter;
}

如果需要在每次打开高级搜索对话框时重置搜索过滤器,则在这种情况下不能使用
beforeShowSearch
回调,因为在调用
beforeShowSearch
之前,搜索对话框将读取
postData.filters
。您可以添加与原始搜索按钮完全相同的自定义搜索按钮,并使用的
search:false
选项不使用标准按钮。在
onClickButton
的内部,您可以在调用之前重置
postData
filters
属性

或者,您可以在
loadComplete
回调中重置
postData.filters
的值,并使用高级搜索的
recreateFilter:true
选项在每次打开搜索对话框时强制创建新过滤器

演示最后一种方法。它首先定义变量

var defFilter='{“groupOp”:“AND”,“rules”:[{“field”:“invdate”,“op”:“gt”,“data”:“2007-09-06”}]}';
并使用
loadComplete
重置过滤器

loadComplete:函数(){
$(this).jqGrid(“getGridParam”,“postData”).filters=defFilter;
}