【问题标题】:Free jqGrid - callback functions on filterToolbar are not being called免费 jqGrid - filterToolbar 上的回调函数没有被调用
【发布时间】:2016-03-17 10:09:47
【问题描述】:

示例位于jFiddle(查找文本“Example for Filter with callback function”)

这种减速似乎对 beforeClear 和 beforeSearch 没有影响:

$(nameOfGrid).jqGrid('filterToolbar', {stringResult: true, searchOnEnter: true, searchOperators: true, defaultSearch : "cn",beforeClear: function() {alert(1)}, beforeSearch: function() {alert(1);}});

我放置“alert(1)”只是为了查看是否弹出某些内容,但似乎在我过滤或清洁过滤器时不会触发它。

我从 4.9.0 开始看到这一点,但如示例所示,也是最新的。

感谢您的帮助,

谢谢,

塔尔。

【问题讨论】:

    标签: jquery jqgrid free-jqgrid


    【解决方案1】:

    问题原因:filterToolbar的用法more as once

    $('#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,并从navGridnavButtonAdd 的所有调用中删除"#jqGridPager" 参数。

    您应该考虑在jqGrid的searching参数中移动navGridfilterToolbar的搜索选项。

    更重要的是从colModel 中删除所有隐藏列,您不打算显示用户并改用additionalPropertries。强烈建议使用colModel中的列模板。

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

    【讨论】:

      猜你喜欢
      • 2017-04-21
      • 1970-01-01
      • 2017-07-26
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-08
      相关资源
      最近更新 更多