jqGridTable用reloadJqGrid()刷新之后还停留在刷新之前的页面

项目中有用到jqGridTable,但是编辑之后用reloadJqGrid()重新加载之后,有分页的话,页面都会刷新到第一页,不会停留在当前页面。查看原插件函数,发现他有这样一段代码:

//这段代码是jquery.ex.jqgrid.js里面原来封装好的
reloadJqGrid:function(postData){
	if($(this).isJqGrid()){
	   if(!postData) postData = {};
		$(this).setGridParam({  
		    datatype:'json',
		    postData:postData,
		    page:1//这边的1就是刷新之后页面会刷新到第一页
		 });
	   $(this).trigger("reloadGrid");
	}
},

我百度查找了一下解决方法:原文是这样的:jqGrid刷新指定页码列表_lth1156187401的博客-CSDN博客

就是声明了一个变量,获取当前页,赋值到函数就好了,代码如下:

var p=$(this).jqGrid('getGridParam','page');//获取当前页

完整代码如下:(本来这段代码是完美的,但是一个月后测试测出来一个Bug,是这个修改结果引起的,所以在这个基础上又做了修改)

reloadJqGrid:function(postData){
    var p=$(this).jqGrid('getGridParam','page');//获取当前页
        if($(this).isJqGrid()){
	    if(!postData) postData = {};
	    $(this).setGridParam({  
		 datatype:'json',
		 postData:postData,
		  page:p
	    });
	$(this).trigger("reloadGrid");
	}
},

首先描述一下出现的bug,就是上面将page:1改成page:p后,列表页的查询功能只有在第一页查的时候是正确的,除第一页外查询,就会出现查询问空的bug,所以进行了修改

reloadJqGrid:function(postData){
  var p=$(this).jqGrid('getGridParam','page');//获取当前页,目的:(当勾选操作不在第一页时,操作完还保留到当前页面)
  //当达到操作后继续保留在当前页面后,页面搜索功能在除第一页以外的地方搜索就会搜索不到,所以要在搜索时加一个参数:page:1
  if(postData!=null && postData!=''){//如果不判断非空,在做别的操作的时候会出现hasOwnProperty,undefined
	if( postData.hasOwnProperty("page")){//判断有没有page这个key值
		p=postData["page"];
	}
  }
  if($(this).isJqGrid()){
    if(!postData) postData = {};
       $(this).setGridParam({  
	 datatype:'json',
	 postData:postData,
	 page:p
       });
    $(this).trigger("reloadGrid");
  }
},

然后在页面搜索的时候,加一个参数page:1,这样就不会有问题了

$(".fastSearchBtn").on("click", function () {
  var name = $("#searchVal").val();
  var code = name ? parent.id : null;
  var parentId = name ? null : parent.id;
  $("#departmentList").reloadJqGrid({
        code: code, name: name, "parent.id": parentId,page:1
   })
})

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值