jqgrid和vue结合的问题

使用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");
 

猜你喜欢

转载自www.cnblogs.com/raspberry/p/10967344.html