easyUI中,分页情况下,跳转到其他页面修改数据,再返回时,相当于重新打开此页面,即显示第一页。 这样很不方便。故提出跳转回修改前的页面的需求。
通过网上搜索,了解到实现页面跳转回去的基本原理是:传递当前页码到另一页,然后另外一页接收页码值再传回到原页面。如果考虑页面显示条数的变动,也可以将页面显示条数值进行传递。
不过多废话,直接上源码,仅需在需更改的页面添加如下代码即可。
一、带有分页的页面:
1、取得当前分页的页码值和每页显示条数
当前分页的页码值
var grid= $('#dg'); //table的ID
var options =grid.datagrid('getPager').data("pagination").options;
var thisPageNumber= options.pageNumber; //获得当前页
当前每页显示条数
var grid= $('#dg'); //table的ID
var options = grid.datagrid('getPager').data("pagination").options;
var thisPageSize = options.pageSize; //获得当前页的单页显示数目
2、分页的页码值和每页显示条数,获得后用于设置当前页面显示
//分页传进去的参数
$(function(){
var pg = "${pageNumber}";
var ps = "${pageSize}";
/* */
if(pg!=null && pg!=''){
$("#dg").datagrid('getPager').pagination('refresh',{pageSize:ps});
}
if(ps!=null&&ps!=''){
$("#dg").datagrid('getPager').pagination('select',parseInt(pg)); (此处需注意用了parseInt的方法,如果不使用此方法,当跳转回来没有问题,但点击下一页时,回直接跳转到最后一页。具体原因可以参考一下:http://3y.uu456.com/bp_8w9fu2ahot2wkqq4m2mw_1.html)
}
})
二、修改页面
在URL后边直接添加需要传递的参数"?pageNumber="+"${pageNumber}"+"&pageSize="+"${pageSize}"。
我的需要跳转到后台,相应的URL如下,'${pageContext.request.contextPath}/food/edit.do?commidityId='+commodityId+"&pageNumber="+"${pageNumber}"+"&pageSize="+"${pageSize}");。
只要添加如上信息,就可以搞定页面跳转显示问题了。
本人的项目采用SSM框架,从带有分页的页面跳转到修改页面和从修改页面返回到带有分页的页面,之间都通过后台的controller跳转,其中涉及到controller接收参数并继续向下传递参数,我仅仅是放在了request.setAttribute()中。另本人采用的是假分页,如采用真分页,请进行一定的修改。