使用jqgrid做一個項目
var page = $("#jqGrid").jqGrid('getGridParam','page'); var postData = $('#jqGrid').jqGrid("getGridParam", "postData"); $("#jqGrid").jqGrid('setGridParam',{ postData:{ 'startAt': vm.q.startAt, 'endAt': vm.q.endAt, 'customer': vm.q.customer, 'productLine': vm.q.productLine, 'projectType': vm.q.projectType, 'project_manager':vm.q.pm }, page:page }).trigger("reloadGrid");
在參數里面傳了多個數據.發現的問題是假如先用一個數據,比如
vm.q.projectType = 1,這樣去查詢了一次
然后再把
vm.q.projectType置為null,這樣,還是會傳之前的數據1到后台,查了很久的資料,發現原因是這樣的.
jqgrid會存儲上一次請求的數據,如果本次傳了,那么就會覆蓋.如果為null,那么就會仍然使用上一次的數據,就會早上上面的情況
解決方案:
每次傳以前,把數據給清了
修改后的代碼
var page = $("#jqGrid").jqGrid('getGridParam','page'); var postData = $('#jqGrid').jqGrid("getGridParam", "postData"); $.each(postData, function (k, v) { delete postData[k]; }); $("#jqGrid").jqGrid('setGridParam',{ postData:{ 'startAt': vm.q.startAt, 'endAt': vm.q.endAt, 'customer': vm.q.customer, 'productLine': vm.q.productLine, 'projectType': vm.q.projectType, 'project_manager':vm.q.pm }, page:page }).trigger("reloadGrid");