如何指定flexigrid的起始加载页

本文介绍了一种在使用Flexigrid时实现分页状态记忆的方法。通过将当前页数保存在session中,并利用Flexigrid的newp参数而非page参数来设定起始页,从而实现了返回时停留在上次操作的页数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近使用flexigrid的时候遇到一个问题:在grid中选中一条记录后跳转到其他页面进行操作(比如说编辑数据),之后再回到grid页面时,希望能够回到操作之前所停留的页数,即要“记住当前分页”。

 

当前页数的保存可以通过session之类的手段实现,但问题的关键点在于如何手动设定flexigrid的起始页。一开始我根据网上广泛流传的那一份flexigrid参数说明,以为是设置page参数,但结果不起作用。经过查看flexigrid的源代码后才发现,要设置的不是page,而是newp,最后的实现实现方案如下(由于写的时候比较随意,就在jsp上直接写了java代码了,):

$("#flex1").flexigrid({
//......
newp: <% Object p = request.getSession().getAttribute("currentPage"); 
	if(null != p){
		out.print(p.toString());

	}else{
		out.print(1);

	}
%>,
//......
});

  

 

 那么,为什么是newp,而不是page呢?通过查看flexigrid的源代码就很容易地发现原因:

 

populate: function () { //get latest data

	//......

	var param = [
		 { name : 'page', value : p.newp }
		,{ name : 'rp', value : p.rp }
		,{ name : 'sortname', value : p.sortname}
		,{ name : 'sortorder', value : p.sortorder }
		,{ name : 'query', value : p.query}
		,{ name : 'qtype', value : p.qtype}
	];							 
				 
	if (p.params){
		for (var pi = 0; pi < p.params.length; pi++) param[param.length] = p.params[pi];
	}
	
	$.ajax({
		type: p.method,
		url: p.url,
		data: param,
		dataType: p.dataType,
		success: function(data){g.addData(data);},
		error: function(data) { try { if (p.onError) p.onError(data); } catch (e) {} }
	});
},

 

 注意第6行,flexigrid在初始化时,默认是把newp参数赋值给ajax请求的参数page的,而grid的page参数,其实仅用于显示当前页码,并不作为请求参数传递到后台。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值