【问题标题】:jqgrid refresh grid button doesn't pass along filtersjqgrid 刷新网格按钮不通过过滤器
【发布时间】:2011-08-21 23:32:21
【问题描述】:

当我使用 jqgrid 并在顶部工具栏过滤器或高级过滤器中输入值,然后单击网格页脚中的“刷新网格”按钮时,它会清除过滤器中的值。

这是 jqgrid 中的一个错误,还是您必须明确地做一些事情来保持工具栏列过滤器的状态。

有没有办法让它工作?

【问题讨论】:

    标签: jquery jqgrid filter


    【解决方案1】:

    您如何在 jqGrid 的源代码中看到(请参阅here)该行为是设计使然。我能找到的最旧的 jqGrid 版本是 jqGrid 3.5.2,在这个版本中,网格过滤器也被重置了。

    如果您需要重新加载按钮的其他行为,您可以添加(使用navButtonAdd)您的自定义按钮,该按钮看起来像原始重新加载按钮(它具有“ui-icon-refresh”作为buttonicon 参数)并实现另一种重新加载的行为。例如,您可以拨打trigger("reloadGrid", [{page:1}])。

    重新加载自定义的另一种可能性是beforeRefresh 和afterRefresh 事件。

    【讨论】:

    • @Oleg - 感谢您的反馈。当您说这是“设计使然”时,您认为有人会想在刷新时丢失过滤器吗?似乎是一个奇怪的设计,更多的是疏忽。 .
    • @ooo:我明白你的意思,但在 jqGrid 的所有实现中,“刷新”按钮的作用完全相同:清除过滤器并重新加载网格。它与搜索对话框中的“重置”按钮几乎相同。如果我要实现“刷新”按钮,我将实现更多从服务器刷新,而不是重置过滤器。在loadonce:true 的情况下,我将首先保存datatype 的原始值('json' 或'xml')并在“刷新”按钮中重置datatype 的原始值并重新加载网格而不更改过滤器。
    • @ooo:jqGrid 的优点是你可以相对容易地实现你需要的行为(见我的主要答案)
    • @Oleg - 感谢您的额外想法。棘手的部分是必须弄清楚:1. 我是否有任何工具栏过滤器,2. 我是否有任何高级过滤器。 3.将这些与刷新一起传递
    • @ooo: 给你$("#items-list").jqGrid({ etc... pager: '#items-pager', etc.... }).navGrid('#items-pager', { search: false, edit: false, add: false, del: false, refresh: false, searchtext: 'Filter' }, {}, {},{}, {closeAfterSearch: true, closeAfterReset: true, multipleSearch: false } ).navButtonAdd("#items-pager", {caption:'', buttonicon: 'ui-icon-refresh', onClickButton: function() {$("#items-list").trigger("reloadGrid");}, position: 'first', title: 'Refresh'} ).filterToolbar({ autosearch: true, stringResult: true, searchOnEnter: false} );
    猜你喜欢
    • 2015-01-12
    • 2017-04-08
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    相关资源
    最近更新 更多