gpt4 book ai didi

javascript - 如何在较新版本的 free-jqgrid 中重置搜索工具栏和搜索过滤器?

转载 作者:行者123 更新时间:2023-11-30 16:07:37 24 4
gpt4 key购买 nike

对于 free-jqgrid 的旧版本,我使用了一个函数来重置搜索工具栏和过滤器:

function resetSearchToolbar()
{
var col_arr = $("#grid").jqGrid("getGridParam", "colModel");
var toolbar_selector;

for(var i = 0, max = col_arr.length; i < max; i++)
{
if(col_arr[i].search && $("#gs_" + col_arr[i].name).val().length)
{
toolbar_selector = $("#gs_" + col_arr[i].name)
toolbar_selector.val("");
}
}

// trigger toolbar searching with key-event:
if(typeof toolbar_selector !== "undefined")
toolbar_selector.trigger("keydown");
}

这是一种非常糟糕的 hack - 但它对我有用。

在较新版本的 free-jqgrid (4.13+) 中是否有更好的方法来实现这一点?

最佳答案

免费的 jqGrid 4.13.0 实现了新功能:根据当前搜索过滤器 postData.filters 填充过滤器工具栏,以防过滤器被真正应用(search:true 选项在 jqGrid 中设置)。如果您不想拥有该功能,可以使用 filterToolbarloadFilterDefaults: true 选项。

该功能在一些测试用例中存在一些小错误,但 4.13.2 版本应该已修复所有问题。

免费的 jqGrid 支持 jqGridRefreshFilterValues 事件,可以触发该事件以强制重新加载过滤器(无需重新加载网格)。在重新加载网格时,过滤器将被重新加载。

因此,如果您更改了 postData.filterssearch 选项,并且您希望立即应用更改,那么您只需触发 jqGridRefreshFilterValues 事件:

$("#grid").triggerHandler("jqGridRefreshFilterValues");

如果您在触发事件之前设置例如 search: false,则过滤器工具栏的所有字段都将被清除:

var $grid = $("#grid");
$grid.jqGrid("getGridParam").search = false;
$grid.triggerHandler("jqGridRefreshFilterValues");

如果您想清除过滤器并重新加载网格,那么您可以使用旧的 jqGrid 方法 clearToolbar(参见 the old documentation):

$("#grid")[0].clearToolbar();

关于javascript - 如何在较新版本的 free-jqgrid 中重置搜索工具栏和搜索过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36787651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com