JQGrid 本地搜索多列

JQGrid local search multiple columns

我将 JQGrid 与本地搜索结合使用(在列 header 内)。

我有 2 个列,我想合并它们的搜索 - 因此,当我在搜索输入中写入一个值时,将同时在 2 列中搜索该值。

这个可以实现吗?如果是这样,怎么做 ??

提前致谢。

如果我正确理解你的问题,你使用 filterToolbar for searching in a grid which has datatype: "local". In the case jqGrid fills postData.filters parameter in the form described here,这对应于通过对话框搜索 multipleSearch: true

您可以在 filterToolbar 方法的 beforeSearch 回调中实现您的要求。在回调中你可以使用

var postData = $(this).jqGrid("getGridParam", "postData");

获取对 postData 对象的引用。然后你可以使用 JSON.parse(postData.filters)filterToolbar 创建的过滤器转换为对象。它将是像

这样的对象
{
    "groupOp": "AND",
    "rules": [{
        "field": "someColumnName",
        "op": "cn",
        "data": "data entered by user"
    }]
}

您可以通过在 "rules" 中再添加一项并将 postData.filters 设置为新值 JSON.stringify(modifiedFiltersObject) 来修改对象。最后 beforeSearch 回调应该 return false 继续过滤。这样,您将能够实现您的要求。

如果你使用Guriddo jqGrid, you can use filterInput method. This method allow to search on all fields in grid data using single input value. Here is description of the method

这是一个demo