【发布时间】:2015-07-15 07:32:23
【问题描述】:
找了几个小时甚至几天后,我仍然找不到满意的解决方案:
我要做的就是以编程方式使用 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,因为我只收到错误:“Uncaught ReferenceError: jqGridFilter is not defined”
TL;DR:我“只是”想以编程方式使用(最好)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 中的一些奇怪的错误。
【问题讨论】:
-
你能把你目前拥有的东西摆弄一下吗?包括您当前的搜索/过滤器和一些示例数据。如果您愿意,可以使用this fiddle 作为基础,它基于 free-jqgrid 中的this file,但没有经过测试。
-
我不保证有适合您的解决方案,但有一些工作代码可以帮助您开始。
-
@alan0xd7 谢谢。从我的 jqgrid 中创建一个小提琴对我来说需要几个小时的工作。我只想知道一件非常基本的事情:我怎样才能以编程方式进行“multipleSearch”? - 由于某种原因,您展示的小提琴需要永远加载。如果取消加载,我可以看到 javascript 代码。但恕我直言,没有什么能像以编程方式完成的“multipleSearch”。我只需要代码来执行搜索,没有别的。
-
这周我在上班。如果您到时候找不到解决方案,我可以稍后尝试帮助您。一般来说,您似乎只需要设置 jqGrid 的 postData 参数的过滤器属性,将搜索参数设置为 true 并触发 reloadGrid。
-
不客气! search:true 是 postData 的 not 属性。它是 jqGrid 的参数,如 postData 或 datatype。
标签: javascript jquery jqgrid free-jqgrid