我设置了这样的网格实例:
$("#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给出的答案,但它仍然无效。搜索成功但我无法在服务器端进行基于操作数的搜索工作。
如下图所示,没有关于所选操作数的信息。
答案 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
});
希望它会有所帮助。