free-jqgrid:以编程方式进行本地多重搜索?
free-jqgrid: programmatically do a local multipleSearch?
找了几个小时甚至几天后,我仍然找不到满意的解决方案:
我想做的就是以编程方式使用 jqgrid(当前使用 free-jqgrid 4.9.0)的本地 search/filter 选项。
我想做一些类似于本地 "multipleSearch" 的事情 - 而不必从服务器重新加载数据。
到目前为止我发现并尝试过的是这段代码:
var filters = { "groupOp": "AND", "rules": [{ "field": "my_field", "op": "eq", "data": "1234" }] };
//To filter:
jqGridFilter(filters , $('#my_grid'));
但这似乎只适用于旧版本的 jqgrid,因为我只收到错误:"Uncaught ReferenceError: jqGridFilter is not defined"
TL;DR: 我 "just" 想以编程方式使用(最好)free-jqgrid 4.9.0 进行本地 "multipleSearch"。
感谢您的帮助!
更新:
尝试 Oleg 在他的评论中提到的 postData
方式后,我的主要问题是我使用了只有 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 中的一些奇怪错误。
要应用数据过滤,需要执行以下操作
$("#grid").jqGrid("setGridParam", {
postData: {
filters: JSON.stringify({
groupOp: "AND",
rules: [
{ field: "name", op: "cn", data: "anne" }
]
})
},
search: true
}).trigger("reloadGrid", { page: 1 });
其中 "name"
是 colModel
中要设置过滤器的列的名称。
找了几个小时甚至几天后,我仍然找不到满意的解决方案:
我想做的就是以编程方式使用 jqgrid(当前使用 free-jqgrid 4.9.0)的本地 search/filter 选项。
我想做一些类似于本地 "multipleSearch" 的事情 - 而不必从服务器重新加载数据。
到目前为止我发现并尝试过的是这段代码:
var filters = { "groupOp": "AND", "rules": [{ "field": "my_field", "op": "eq", "data": "1234" }] };
//To filter:
jqGridFilter(filters , $('#my_grid'));
但这似乎只适用于旧版本的 jqgrid,因为我只收到错误:"Uncaught ReferenceError: jqGridFilter is not defined"
TL;DR: 我 "just" 想以编程方式使用(最好)free-jqgrid 4.9.0 进行本地 "multipleSearch"。
感谢您的帮助!
更新:
尝试 Oleg 在他的评论中提到的 postData
方式后,我的主要问题是我使用了只有 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 中的一些奇怪错误。
要应用数据过滤,需要执行以下操作
$("#grid").jqGrid("setGridParam", {
postData: {
filters: JSON.stringify({
groupOp: "AND",
rules: [
{ field: "name", op: "cn", data: "anne" }
]
})
},
search: true
}).trigger("reloadGrid", { page: 1 });
其中 "name"
是 colModel
中要设置过滤器的列的名称。