1

在寻找了几个小时甚至几天之后,我仍然找不到一个令人满意的解决方案来解决我的问题:

我要做的就是以编程方式使用 jqgrid 的本地搜索/过滤器选项(当前使用 free-jqgrid 4.9.0)。

例如,我想做一些类似于本地“multipleSearch”的事情——而不必从服务器重新加载数据。

到目前为止我发现并尝试的是这段代码:

var filters = { "groupOp": "AND", "rules": [{ "field": "my_field", "op": "eq", "data": "1234" }] };

//To filter:
jqGridFilter(filters , $('#my_grid'));

但这似乎仅适用于旧版本的 jqgrid,因为我只收到错误消息:“未捕获的 ReferenceError:未定义 jqGridFilter”

TL;DR:我“只是”想以编程方式使用(最好)free-jqgrid 4.9.0 进行本地“multipleSearch”。

谢谢你的帮助!

更新:

在尝试了postDataOleg 在他的评论中提到的方式之后,我的主要问题是我使用了一个只有 1 条规则的“groupOp”:

postData = {
  filters : {"groupOp":"AND","rules":[{"field":"name","op":"cn","data":"anne"}]},
  search : true
}

当省略“groupOp”选项时,它工作了几次。我的代码如下所示:

$("#grid").jqGrid("setGridParam", { 
    postData : {
        filters     :   {"rules":[{"field":"name","op":"cn","data":"anne"}]},
        search      :   true
        }
    }).trigger("reloadGrid");

经过几次重新加载并尝试不同的过滤器后,由于某些奇怪的原因,原始代码不再起作用。我不知道出了什么问题——要么是我,要么是 free-jqgrid 中的一些奇怪的错误。

4

1 回答 1

3

要应用数据过滤,需要执行以下操作

$("#grid").jqGrid("setGridParam", { 
    postData: {
        filters: JSON.stringify({
            groupOp: "AND",
            rules: [
                { field: "name", op: "cn", data: "anne" }
            ]
        })
    },
    search: true
}).trigger("reloadGrid", { page: 1 });

Where是要设置过滤器"name"的列的名称。colModel

于 2015-07-21T12:46:51.317 回答