【问题标题】:jgGrid and event ResetFilterToolbarjgGrid 和事件 ResetFilterToolbar
【发布时间】:2016-12-28 08:44:08
【问题描述】:

我使用 Oleg 的最新免费版本-jqGrig

我知道在 free-jqGrid 版本中,与 jqGrid 不同的是,添加了许多其他事件。

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events#list_of_events

重读了许多类似的答案,但事件对我不起作用。

jqGrid 'clearToolbar' without grid reload

这里有类似的东西,但在一个例子中是按下自定义按钮时的事件。 我有必要在按下 ClearToolbar 时添加对事件“jqGridToolbarBeforeClear”或“jqGridToolbarAfterClear”的自定义检查。

【问题讨论】:

  • 您写过关于“自定义按钮”的文章。你能解释一下你到底做了什么,并更详细地描述了你试图实现的东西吗?您是否以某种方式将自定义按钮添加到搜索过滤器工具栏(参见filterToolbar)或者您的意思是导航栏(参见navGrid)?可能事件 jqGridToolbarBeforeClear 和 jqGridToolbarAfterClear 不是您真正需要的事件。你用的是哪个datatype?一般来说,在大多数情况下,如果您发布 JavaScript 代码或演示,它会很有帮助,这会显示您所做的事情。
  • 您写过“对事件 jqGridToolbarBeforeClear 或 jqGridToolbarAfterClear 的自定义检查”。在某些情况下您是否需要停止处理?仅在jqGridToolbarBeforeClear 中才有可能。它应该返回"stop" 值。
  • 感谢 Oleg 的回答。是的,在某些情况下,我必须停止处理过滤器。我只使用过滤器工具栏。数据类型:'json'
  • 我试试: $("#jqGridP").unbind("jqGridToolbarBeforeClear", function(){ console.log('11111'); return "stop"; }); $("#jqGridP").bind("jqGridToolbarBeforeClear", function(){ console.log('22222'); return true; });
  • 我不确定您是否正确理解何时 jqGridToolbarBeforeClear 被触发。我想你只是使用了错误的事件。在什么情况下你想阻止处理?能否更详细地描述一下测试用例?

标签: javascript jqgrid free-jqgrid


【解决方案1】:

问题的主要原因是错误事件的使用。事件jqGridToolbarBeforeClear 将在方法clearToolbar 内部触发,但您希望防止处理triggerToolbar 内部网格的重新加载。因此,您应该改用jqGridToolbarBeforeSearch 事件。

事件处理程序jqGridToolbarBeforeSearch 的大部分正确实现如下所示:

$("#grid").on("jqGridToolbarBeforeSearch", function (e) {
    var filters = $(this).jqGrid("getGridParam", "postData").filters;
    if (typeof filters === "string") {
        filters = $.parseJSON(filters);
    }
    if (filters) {
        /* add here you custom tests */
        return "stop";
    }

    return e.result; // forward the result of the last event handler
});

使用事件与回调相比的主要优势在于:一个可以定义多个事件处理程序,但只能定义一个回调。如果一个事件返回“停止”以阻止处理,则下一个事件可以用另一个值覆盖该值。要允许在 任何 事件处理程序返回“停止”的情况下停止处理,应该在 每个 事件处理程序中使用 event.result

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多