我有一个Jqgrid,如下:
jQuery("#jQGridDemo").jqGrid({
url: 'http://localhost:58404/JQGridHandler.ashx',
colNames: ['Property ID', 'Property Ref', 'Short Address', 'Scheme Code', 'Scheme Name', 'Property Type', 'Tenure Type', 'Status', 'Management Cost','Rent Charge Month','SC Charge Month'],
colModel: [
{ name: 'PropertyID', index: 'PropertyID', width: 70, align: "left", stype: 'text', sortable: true},
{name: 'PropertyType',width: 80},
{ name: 'TenureType', index: 'TenureType', width: 80, align: "center", sortable: true },
{ name: 'Status', index: 'Status', width: 75, align: "center", sortable: true },
],
该网格有效,并填充有URL返回的Json。 但是,我正在尝试在PropertyType列上实现动态填充的下拉过滤器,并一直在这里查看Oleg的答案:How to add dynamic filter drop down using Jqgrid?
因此,我添加了一个“ beforeProcessing”功能:
beforeProcessing: function (data) {
var propertyMap = {}, propertyValues = ":All", rows = data.rows, i, symbol;
for (i = 0; i < rows.length; i++) {
symbol = rows[i].Symbol;
if (!propertyMap.hasOwnProperty(symbol)) {
propertyMap[symbol] = 1;
propertyValues += ";" + symbol + ":" + symbol;
}
}
$(this).jqGrid("setColProp", 'PropertyType', {
stype: "select",
searchoptions: {
value: propertyValues
}
}).jqGrid('destroyFilterToolbar')
.jqGrid('filterToolbar', {
stringResult: true,
searchOnEnter: false,
defaultSearch: "cn"
});
},
我的问题是,如何将URL返回的数据传递给“ beforeProcessing:函数(数据)”-
任何帮助将不胜感激。
答案 0 :(得分:0)
如果您的数据没有rows属性,则可以像这样修改您的初始代码:
beforeProcessing: function (data) {
var propertyMap = {}, propertyValues = ":All", rows = data, i, symbol;
for (i = 0; i < rows.length; i++) {
symbol = rows[i].Symbol;
if (!propertyMap.hasOwnProperty(symbol)) {
propertyMap[symbol] = 1;
propertyValues += ";" + symbol + ":" + symbol;
}
}
....
唯一与原始代码不同的地方是替换
行= data.rows
使用
行=数据,