Jquery JqGrid工具栏搜索-在字段中设置搜索数据,而不是直接发布数据

Jquery JqGrid工具栏搜索-在字段中设置搜索数据,而不是直接发布数据,jquery,jqgrid,Jquery,Jqgrid,我需要更改过滤器工具栏的默认搜索行为。各国: 执行搜索时,postData数组将填充搜索所需的数据 因此,如果您有一个具有id和name列的网格,并使用这些列进行筛选,则会得到一个如下所示的查询字符串: ?_search=true&nd=1323976178454&rows=20&page=1&sidx=&sord=asc&id=11&name=jr {"name":"search[ID]","label":"id","jsonmap":

我需要更改过滤器工具栏的默认搜索行为。各国:

执行搜索时,postData数组将填充搜索所需的数据

因此,如果您有一个具有id和name列的网格,并使用这些列进行筛选,则会得到一个如下所示的查询字符串:

?_search=true&nd=1323976178454&rows=20&page=1&sidx=&sord=asc&id=11&name=jr
{"name":"search[ID]","label":"id","jsonmap":"ID"}
我想要的是这样的东西

?_search=true&nd=1323976178454&rows=20&page=1&sidx=&sord=asc&search[id]=11&search[name]=jr
如何做到这一点

编辑: 我发现如果我这样定义我的colModel:

?_search=true&nd=1323976178454&rows=20&page=1&sidx=&sord=asc&id=11&name=jr
{"name":"search[ID]","label":"id","jsonmap":"ID"}
它做了我想做的,但这似乎有点俗气。有更好的解决办法吗

以下是我的网格的js:

$("#contactsGrid").jqGrid({
    "url":"\/contacts",
    "datatype":"json", ,
    "viewrecords":true,
    "jsonReader":{
        "root":"items",
        "page":"page",
        "total":"total",
        "records":"records",
        "repeatitems":false,
        "id":0
    },
    "colModel":[
        {"name":"ID","label":"id","jsonmap":"ID","searchoptions":[],
            "formatter":"showlink","formatoptions":{"baseLinkUrl":"\/contacts"}},
        {"name":"Name","label":"Name","jsonmap":"Name"}
    ],
    "colNames":["id","name"],
    "pager":"contactsGrid-pager"
}).navGrid("#contactsGrid-pager",
    {"edit":false,"add":false,"del":false,"view":false});

$("#contactsGrid").filterToolbar({"autosearch":true});

您可以使用
stringResult:true
以更结构化的方式返回结果

$("#contactsGrid").jqGrid('filterToolbar',{stringResult: true, autosearch:true});
输出:

_search: true
filters: {"groupOp":"AND","rules":[{"field":"name","op":"bw","data":"jr"}]}
nd: 1323990002421
page: 1
rows: 10
sidx: date_won
sord: desc
然后,您可以获取“过滤器”数组并使用它执行所需的操作

此外,我发现只使用
loadonce:true
选项更容易,因此我根本不必处理搜索查询。不是定制的,而是更容易的方式


有很多方法可以解决您的问题,但很难回答您的问题,因为您没有发布您使用的网格定义。搜索字段名称与排序中使用的名称基本相同。是否要将
search[ID]
用作
sidx
的值?@Oleg我将很快发布代码。这是一个很好的观点,不,我仍然希望ID是sidx的值