2011-05-09 37 views
6

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

这是jqgrid中的一个错误,还是有一些你必须明确地做它,以保持工具栏列过滤器的状态。

有无论如何得到这个工作? enter image description here

回答

5

如何在jqGrid的源代码中看到(请参阅here)行为是通过设计来实现的。我能找到的最老版本的jqGrid是jqGrid 3.5.2,在版本中,网格过滤器也重新设置了版本。

如果你需要重装按钮的另一种行为,你可以添加(使用navButtonAdd)您的自定义按钮,它看起来像原来的重载按钮(猫有“UI图标刷新”为buttonicon参数)和实施的另一个行为重装。例如,您可以拨打trigger("reloadGrid", [{page:1}])

重新加载定制的另一种可能性是beforeRefreshafterRefresh事件。

+0

@Oleg - 感谢您的反馈。当你说这是“按设计”时,你认为有人会想刷新过滤器?看起来像一个奇怪的设计和更多的疏忽。 。 – leora 2011-05-09 21:31:27

+0

@ooo:我明白你的意思,但在jqGrid的所有实现中,“刷新”按钮完全相同:清除过滤器并重新加载网格。它与搜索对话框中的“重置”按钮几乎相同。如果我要实现“刷新”按钮,我会实现更多的**从服务器**刷新,而不是重置过滤器。在'loadonce:true'的情况下,我会首先保存'datatype'('json'或'xml')的原始值,并在“刷新”按钮中重新设置'datatype'的原始值并重新加载网格改变过滤器。 – Oleg 2011-05-09 21:55:19

+0

@ooo:jqGrid的优点是,你可以相对容易地实现你需要的行为(请参阅我的主要答案) – Oleg 2011-05-09 21:56:28