【发布时间】:2014-08-13 04:55:27
【问题描述】:
只是想更好地了解JqGrid事件过程
- 请求前
- loadBeforeSend
- serializeGridData
- 加载错误
- gridComplete
- 加载完成
基于此事件
- 如果我想在对服务器的
ajax请求中添加过滤器或额外参数,我应该在loadBeforeSend 中进行,对吗? - 从服务器获取数据后,如果我想阻止数据显示在网格中(我想先进一步处理,然后只显示处理后的数据),我应该在 gridComplete对吗?
因为我的工作需要我在向服务器发送请求时添加额外的参数,并且在接收到数据后,我需要停止网格在网格上显示数据,以便我可以进一步处理数据,然后再显示在网格上处理数据。但我似乎无法掌握应该将我的函数放在 JqGrid 的哪个事件中。
谢谢
编辑:
对于 postData 部分
loadBeforeSend: function() {
if (sessionStorage.pathStates == "edit" && location.pathname.indexOf("list") > -1) {
console.log("SUCCESS");
loadFilter();
}
},
还有负载过滤器
function loadFilter() {
var filter = JSON.parse(sessionStorage.filter);
var filterInput = [],
model = [],
filters = {};
filterInput = filter.filterInput;
model = filter.model;
var grid = filter.grid,
page = filter.page,
op = "bw",
a = 0,
b = 0;
filters = {
groupOp: "AND",
rules: []
};
for (var i = 0; i < model.length; i++) {
if (filterInput[a].length > 0) {
filters.rules.push({
field: model[a],
op: "bw",
data: filterInput[a]
});
}
a++;
}
$(grid).jqGrid('setGridParam', {
search: true,
postData: {
filters: JSON.stringify(filters)
}
}).trigger('reloadGrid');
}
至于 beforeProcessing,我还没有这个概念。但是我脑海中的过程是这样的
beforeProcessing: function(data) {
if (sessionStorage.pathStates == "edit" && location.pathname.indexOf("list") > -1) { >>
Filter data based on certain criterias, like
for example, changing one of the column format, or only displaying data that has the value of xxx on certain column >>
Return the filtered data
}
},
【问题讨论】: