jqgrid:如何将搜索运算符信息发送到服务器端

时间:2014-01-13 10:36:15

标签: jqgrid

我设置了这样的网格实例:

$("#list").jqGrid({
        url:'rest/usertest/users', 
        datatype: "json",
        mtype: "POST",
        colNames: ["Username", "Name", "Grouping"],
        colModel: [
            { name: "username" },
            { name: "name", width: 90 },
            { name: "grouping", width: 80, sorttype:'string',searchoptions:{sopt:['eq','bw','bn','cn','nc','ew','en']}},
        ],
        pager: "#pager",
        rowNum: 10,
        rowList: [10, 20, 30],
        sortname: "username",
        sortorder: "asc",
        viewrecords: true, 
        multiselect: false, 
        autowidth: true,
        height: 'auto', 
        gridview: true,
        multiSort: true
    });
    jQuery("#list").jqGrid('filterToolbar',{searchOnEnter : false,searchOperators : true});

我正在尝试通过网格进行基于服务器端操作数的搜索。问题是它不会向服务器端发送有关所选运算符的任何信息。 请求不包含有关所选运算符的任何信息(eq,bw,bn等)。

我正在尝试使用工具栏搜索本身。我错过了任何配置参数吗?请指教。


编辑:

我尝试了@Tomcat给出的答案,但它仍然无效。搜索成功但我无法在服务器端进行基于操作数的搜索工作。

如下图所示,没有关于所选操作数的信息。

request

2 个答案:

答案 0 :(得分:2)

需要stringResult : true

    $('#list').filterToolbar({
        groupOp: 'OR',
        defaultSearch: "cn",
        autosearch: true,
        searchOnEnter: true,
        searchOperators: true, // activates the operators menu
        stringResult : true // activates multi-field search
    });

答案 1 :(得分:0)

尝试添加到网格设置的下一个属性:

searchOperators: true,
search: true,

在对服务器的请求之后应该包含下一个参数: “过滤器” - 搜索过滤器, “sidx” - 用于排序, “sord” - 排序顺序('asc'或'desc'),'_ search' - bool触发搜索。


好的,请看一下这段代码,它可以正常运行并发送所有必要的信息。注意 jQuery(“#list”)。jqGrid('filterToolbar',{ properties。

 jQuery("#list").jqGrid('filterToolbar', {
        searchOnEnter: false,
        searchOperators: true,
        multipleSearch: true,
        stringResult: true,
        groupOps: [{ op: "AND", text: "all" }, { op: "OR", text: "any" }],
        defaultSearch: 'cn', ignoreCase: true
    });

希望它会有所帮助。