示例位于jFiddle(查找文本"带回调函数的过滤器示例")
这种减速似乎对beforeClear& amp; beforeSearch:
$(nameOfGrid).jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, searchOperators: true, defaultSearch : "cn",beforeClear: function() {alert(1)}, beforeSearch: function() {alert(1);}});
我放了"警报(1)"只是为了看看是否弹出一些东西,但是当我过滤或清理过滤器时它似乎没有被触发。
我从4.9.0开始就看到这个,但最新的例子也是如此。
感谢您的帮助,
谢谢,
塔尔。
答案 0 :(得分:2)
问题的原因:使用filterToolbar
一次:
$('#jqGrid').jqGrid('filterToolbar', {stringResult: true});
$('#jqGrid').jqGrid('navGrid',{...});
$('#jqGrid').jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, searchOperators: true, defaultSearch : "cn",beforeClear: function() {alert(1)}, beforeSearch: function() {alert(1);}});
如果只是评论filterToolbar
的第一个电话,则会有一个工作演示:http://jsfiddle.net/OlegKi/13582dh7/4/
如果您确实需要重新创建过滤器,则应在下次调用destroyFilterToolbar
之前先致电filterToolbar
。
我还建议您清理代码,使其更短,更易读。您可以删除不需要的<div id="jqGridPager"></div>
,将pager: "#jqGridPager"
替换为pager: true
,并从"#jqGridPager"
和navGrid
的所有来电中删除navButtonAdd
参数。
您应该考虑在{jqGrid的navGrid
参数中移动filterToolbar
和searching
的搜索选项。
更重要的是删除colModel
中的所有隐藏列,您不打算显示用户并使用additionalPropertries
。我们严格建议您在colModel
中使用列模板。
在减少代码并使其更具可读性后,将永远不会花时间解决诸如使用不同参数调用filterToolbar
两次这样的问题。