1.前端html代码如下:


2.JS代码如下:

这部分使用了laypage分页函数和jQuery的append函数,实现异步刷新。

functionpaging(curr){
$.getJSON('/page',{
page:curr||1//向服务端传的参数
},function(res){
//此处输出内容
vartable=$("
"); table.attr({class:"layui-tableadmin-table",id:"page"}); varthead=$("编号姓名行为时间操作"); table.append(thead); vartbody=$(""); tbody.attr({id:"content"}); $(function(){ vardatas=res; $.each(datas,function(index,value){ vartr=$(""); tr.append(""+(++index)+""); tbody.append(tr); tr.append(""+value.staffName+""); tbody.append(tr); tr.append(""+value.operation+""); tbody.append(tr); tr.append(""+value.createTime+""); tbody.append(tr); vartd=$(""); vardiv=$("
"); div.attr({class:"layui-btn-group"}); varbutton1=$("详情"); button1.attr({class:"layui-btndetail"}); varbutton2=$("恢复"); button2.attr({class:"layui-btnrecovery"}); div.append(button1);div.append(button2); td.append(div); tr.append(td); tbody.append(tr); }); }); table.append(tbody); $("#log-list").append(table); //$("#log-list").innerHTML=table; //显示分页 laypage({ cont:'page-list',//容器。值支持id名、原生dom对象,jquery对象。【如该容器为】: pages:res[0].pageTotal,//通过后台拿到的总页数 curr:curr||1,//当前页 skip:true, jump:function(obj,first){//触发分页后的回调 if(!first){//点击跳页触发函数自身,并传递当前页:obj.curr $("#log-list").text(''); paging(obj.curr); } } }); }); }; //运行 paging();

实现以上代码,基本上的样式已经出来。下面执行实现后端分页和数据查询即可。/p>

3.后端代码–controller部分:

/**
*功能描述:返回无查询条件查询分页数据
*@parampage
*@return
*@since
*/
@RequestMapping(value="/page")
@ResponseBody
publicListgetPage(Integerpage){
if(page==null){
page=1;
}
ListsubmitLogList=newArrayList<>();
submitLogList=logService.getAllLog(page);
returnsubmitLogList;
}

4.后端代码–service部分:

/**
*功能描述:无查询条件分页
*@parampageCurr
*@return
*@since
*/
publicListgetAllLog(intpageCurr){
intpageSize=10;//每页显示十条数据
intpageStart=(pageCurr-1)*pageSize;//limit=(pageCurr-1)*10,10

ListsubmitLogList=newArrayList<>();
submitLogList=logMapper.getAllLog(pageSize,pageStart);
//计算前端页面显示的页数
//当前数据库记录数
intcount=submitLogList.get(0).getPageTotal();
intpage=count%pageSize==0?count/pageSize:count/pageSize+1;
log.debug("页数"+page);
submitLogList.get(0).setPageTotal(page);
returnsubmitLogList;
}

5.后端代码–dao部分:

/**
*功能描述:查询所有数据--带分页
*@parampageSize每页大小
*@parampageCurr即将显示当前页
*@return
*@since
*/
@Select("SELECTs.pageTotal,number_id,staff_name,create_time,weekly_id,operationFROMsubmit_log,"
+"(SELECTcount(1)ASpageTotalFROMsubmit_log)sORDERBYnumber_idDESCLIMIT#{pageStart},#{pageSize}")
@Results({
@Result(column="number_id",property="numberId"),
@Result(column="staff_name",property="staffName"),
@Result(column="create_time",property="createTime"),
@Result(column="weekly_id",property="weeklyId")
})
ListgetAllLog(@Param("pageSize")intpageSize,@Param("pageStart")intpageStart);

至此,异步分页前后端结合基本结束,因为代码都带有必要的注释,所以也无需过多解释。

整页刷新式跳转

这种方式的分页,基本上分页逻辑都由laypage去实现了,后端分页逻辑基本上不用过多考虑。还是比较方便的,建议结合官网的文档和代码进行理解。下面是实现代码:

1.前端HTML代码:

//此处是显示数据的具体HTML代码
//分页显示的位置

2.Js代码:

这部分的分页实现,后端只需返回总页数即可。

functionpaging(){
$.getJSON('/weekly-page-count',{},function(res){
//整页刷新
laypage({
cont:'page-list',
pages:res,//可以叫服务端把总页数放在某一个隐藏域,再获取。假设我们获取到的是18
curr:function(){//通过url获取当前页,也可以同上(pages)方式获取
varpage=location.search.match(/page=(\d+)/);
returnpage?page[1]:1;
}(),
skip:true,
jump:function(e,first){//触发分页后的回调
if(!first){//一定要加此判断,否则初始时会无限刷新
location.href='?page='+e.curr;
}
}
});
});
}
paging();

3.后端代码–controller部分:

/**
*功能描述:返回无查询条件查询分页数--用户
*@parampage
*@return
*@since
*/
@RequestMapping(value="/weekly-page-count")
@ResponseBody
publicIntegergetPage1(IntegeruserId){
Integercount=weeklyService.getPageCount(userId);
returncount;
}

4.后端代码–service部分:

/**
*功能描述:总页数
*@paramuserId
*@return
*@since
*/
publicIntegergetPageCount(IntegeruserId){
intcount=0;
count=weeklyMapper.getPageCount(userId);

intpageSize=5;//每页显示条数
intpage=count%pageSize==0?count/pageSize:count/pageSize+1;//计算页数
returnpage;
}

5.后端代码–dao部分:

/**
*功能描述:无条件查询记录条数==分页总数
*@paramuserId
*@return
*@since
*/
@Select("SELECTcount(1)ASpageTotalFROMweeklyWHEREuser_id=#{userId}")
IntegergetPageCount(@Param("userId")IntegeruserId);

总结:两种分页方式使用起来都是比较方便的。使用的场景还是有些不同:异步式适合JQuery重写页面比较容易的;整页式更简单,各种场景都可以使用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。

热门推荐

1 毛坯房验收经验和常识 看了之后再验房心里有底
2 二手房收房如何交接 二手房收房注意问题
3 专业验收毛坯房的价格 商品房验收合格的标准
4 精装房怎么验收 精装房请验房师有用吗
5 一般要到哪里找验房师 验房师有哪些作用呢
6 请人验房一般是多少钱 验房师费用是多少
7 怎样测量房子面积 建筑面积和使用面积怎么算
8 收房需要注意什么 仔细检查不松懈
9 收房时三书一证一表是什么 主要作用介绍
10 交房时交房税费有哪些 本文为你一一讲解
11 验房都需要验什么 要做哪些准备呢
12 毛坯房验房师有必要请吗 毛坯房装修完如何验收
13 地下室防水工程质量验收规范详解
14 水性涂料、油性涂料区别介绍
15 零基础布艺DIY工坊 教你做超萌猫头鹰钥匙包
16 三棵树漆怎么样?三棵树漆官方网站
17 家庭“装修套餐”中猫腻你知道吗?
18 小空间大浴望 卫浴间装修巧支招