jgGrid 和事件 ResetFilterToolbar

jgGrid and event ResetFilterToolbar

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

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

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

已经重新阅读了很多类似的答案,但事件对我不起作用。

jqGrid 'clearToolbar' without grid reload

此处类似,但在示例中是按下自定义按钮时的事件。 对我来说,当按下 ClearToolbar 以添加对事件“jqGridToolbarBeforeClear”或“jqGridToolbarAfterClear[ 的自定义检查时,这是必要的=30=]".

你的问题的主要原因是使用了错误的事件。事件 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
});

与回调相比,使用事件的主要优点如下:可以定义多个事件处理程序,但只能定义一个回调。如果一个事件 returns "stop" 阻止处理,那么下一个事件可以 覆盖 具有另一个值的值。要允许在 any 事件处理程序 return "stop" 的情况下停止处理,应该在 every[=28= 中使用 event.result ] 事件处理程序。