如何指定flexigrid的起始加载页

最近使用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参数,其实仅用于显示当前页码,并不作为请求参数传递到后台。

 

 

 

 

你可能感兴趣的:(Ajax,jsp)