免费的jqGrid - filterToolbar上的回调函数没有被调用

时间:2016-03-17 10:09:47

标签: jquery jqgrid free-jqgrid

示例位于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开始就看到这个,但最新的例子也是如此。

感谢您的帮助,

谢谢,

塔尔。

1 个答案:

答案 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参数中移动filterToolbarsearching的搜索选项。

更重要的是删除colModel中的所有隐藏列,您不打算显示用户并使用additionalPropertries。我们严格建议您在colModel中使用列模板。

在减少代码并使其更具可读性后,将永远不会花时间解决诸如使用不同参数调用filterToolbar两次这样的问题。