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

时间:2013-02-13 09:44:58

标签: jqgrid

我在我的项目中使用jqgrid高级搜索。一切正常。现在我必须在点击搜索按钮时显示默认搜索条件。请告诉我如何实现这一目标。我在beforeShowSearch

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

它有效。

1 个答案:

答案 0 :(得分:4)

如果您需要在每次打开高级搜索对话框时重置搜索过滤器,则无法在此案例中使用beforeShowSearch回调,因为在之前搜索对话框将会读取postData.filters em>呼叫beforeShowSearch。你可以做的是添加关于navButtonAdd的自定义搜索按钮,它看起来与原始搜索按钮完全相同,并使用navGridsearch: false选项没有标准按钮。在onClickButton内,您可以在调用searchGrid之前重置filters的{​​{1}}属性。

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

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

recreateFilter: true

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

loadComplete