【发布时间】:2018-09-05 14:43:30
【问题描述】:
我正在使用 JQGrid(版本 5.3.0)显示动态表中的值(我事先不知道列号和列名)。我从对服务器的 ajax 调用中检索列架构,以及需要应用于网格的过滤器,然后从那里创建 JQGrid。
我面临的问题是我找不到从传递给表格的过滤器中正确重新填充过滤器工具栏的方法。
代码如下:
$.ajax({
url: {url to get columns and filter},
type: 'POST',
postData: { productID: 98 }
success: function (result) {
if (result) {
$('#grid').jqGrid({
url: {url to get data},
datatype: 'json',
search: true,
postData: { productID: 98, filters: result.filter },
myType: 'GET',
colModel: result.columns,
jsonReader: {
root: 'Data',
page: 'Page',
total: 'Total',
records: 'PageSize'
},
pager: $('#gridpager'),
rowNum: 25,
gridview: false,
afterInsertRow: function (rowid, rowdata, rowelem) {
var color = rowelem.Color;
if (color != 'white') {
$("tr.jqgrow#" + rowid).addClass("color-" + color);
}
},
}).filterToolbar({
groupOp: 'AND',
defaultSearch: "cn",
searchOnEnter: true,
searchOperators: true,
stringResult: true,
});
}
}
});
以下是列模型的示例:
[
{
"name":"DESCRIPTION",
"label":"Description",
"searchoptions":
{
"sopt": ["bw","cn","nc","ew","eq","ne","in"],
"attr":{"class":"glyphicon glyphicon-filter"}
}
},
{
"name":"SKU_CODE",
"label":"SKU Code",
"searchoptions":
{
"sopt":["bw","cn","nc","ew","eq","ne","in"],
"attr":{"class":"glyphicon glyphicon-filter"}
}
},
{...}
]
这里是过滤器:
"{\"groupOp\":\"AND\",\"rules\":[{\"field\":\"DESCRIPTION\",\"op\":\"bw\",\"data\":\"D\"}]}"
执行此代码时,从我的数据源加载数据,应用过滤器,但过滤器栏保持空白。
有没有办法用传入参数的过滤器中的值自动填充过滤器工具栏?我已经尝试解析过滤规则,并用匹配值填充输入,但我找不到恢复运算符的方法。
【问题讨论】:
标签: javascript jquery jqgrid