【问题标题】:free-jqgrid: programmatically do a local multipleSearch?free-jqgrid:以编程方式进行本地多重搜索?
【发布时间】: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


【解决方案1】:

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

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

其中"name"colModel 中要设置过滤器的列的名称。

【讨论】:

  • 谢谢你!事实证明,我的主要问题是:1)将search : true 放在错误的位置。 2) 我的filters JSON 中的格式错误问题(过滤器的文档记录很差,恕我直言)。我必须指出我不需要在我的解决方案中使用JSON.stringify()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多