jqgrid setGridParam方法设置postData参数值累加问题

做项目前端用到jqgrid表格,最近要做获取es数据排序 显示在表格,就需要点击表头进行正序倒序排列。

这个过程中遇到了一个问题,点击多个表头切换排序的列,应该直传最近点击列相关的参数到后台,但实际遇到把前面累计点击的所有列参数传到了后台。

找了很长时间原因,最后发现是jqgrid的方法 setGridParam方法自身会累加postdata的值

这里解决办法是:在调用setGridParam设置postdata值之前先清空表格postData属性的值

                  $('#jqGrid').jqGrid('clearGridData');  //清空表格  数据
			 	    
			 	    /*
			 	    * 先清空条件
			 	    * jqgrid postData setGridParam 调用多次时查询条件会累加
			 	    */
		    var postData = $('#jqGrid').jqGrid("getGridParam", "postData");
                    $.each(postData, function (k, v) {
                        delete postData[k];
                    });                    
					jqGridOptions.postData["sort"]=sort;
					$('#jqGrid').setGridParam({postData:jqGridOptions.postData}).trigger("reloadGrid");

jqGridOptions是保留的表格参数集合

你可能感兴趣的:(jqgrid,web)