【发布时间】:2016-02-05 15:52:05
【问题描述】:
以下代码不适用于本地数据的过滤器工具栏。
请帮我解决这个问题。 我是 jqgrid 的新手。我正在尝试使我的网格在本地进行过滤。以下代码取自小提琴中给出的示例之一。
我即将做同样的事情,但发生的事情是,我的网格中有两个过滤器。如果我选择两个过滤器,那么只有网格正确过滤数据。但是如果我只选择一个过滤器,那么网格就不会得到过滤器。尽管第二个过滤器的值为“无过滤器”
var serverResponse = [
{id: 10, label: 10, value: "Abc"},
{id: 20, label: 20, value: "Xyz"},
{id: 30, label: 30, value: "Abc"},
{id: 40, label: 40, value: "Xyz"},
{id: 50, label: 50, value: "Abc"},
{id: 60, label: 60, value: "Abc"},
{id: 70, label: 70, value: "Xyz"},
{id: 80, label: 90, value: "Abc"},
{id: 90, label: 10, value: "Xyz"},
{id: 100, label: 20, value: "Abc"},
{id: 110, label: 10, value: "Abc"},
{id: 120, label: 30, value: "Xyz"},
{id: 130, label: 10, value: "Abc"},
{id: 140, label: 60, value: "Xyz"},
{id: 150, label: 10, value: "Abc"}
];
$("#grid").jqGrid({
url: "/echo/json/", // use JSFiddle echo service
postData: {
json: JSON.stringify(serverResponse) // needed for JSFiddle echo service
},
mtype: "POST", // needed for JSFiddle echo service
datatype: "json",
colNames: ["Label", "Value"],
colModel: [
{name: "label", width: 70, template: "integer" },
{name: "value", width: 200 }
],
loadonce: true,
pager: true,
rowNum: 10,
rowList: [5, 10, "10000:All"],
iconSet: "fontAwesome",
cmTemplate: { autoResizable: true },
shrinkToFit: false,
autoResizing: { compact: true },
beforeProcessing: function (data) {
var labelMap = {}, valueMap = {}, i, item, labels = ":All", values = [], $self = $(this);
for (i = 0; i < data.length; i++) {
item = data[i];
if (!labelMap[item.label]) {
labelMap[item.label] = true;
labels += ";" + item.label + ":" + item.label;
}
if (!valueMap[item.value]) {
valueMap[item.value] = true;
values.push(item.value);
}
}
$self.jqGrid("setColProp", "label", {
stype: "select",
searchoptions: {
value: labels,
sopt: ["eq"]
}
});
$self.jqGrid("setColProp", "value", {
stype: "select",
searchoptions: {
value: values,
sopt: ["eq"]
}
});
// one should use stringResult:true option additionally because
// datatype: "json" at the moment, but one need use local filtreing later
$self.jqGrid("filterToolbar", {stringResult: true });
}
});
【问题讨论】:
标签: jquery jqgrid free-jqgrid