最近安排一个小项目用到了BootStrap来做界面,分页也是必备的,但是找了一些BootStrap的分页插件感觉都不是太好用,很有可能是自己学的不太好,很长时间不太做前端界面了,也很生疏,接下来说下做的大体流程。
最终找到一个jQuery的分页插件:jQuery Pagination plugin
官网地址:
代码:
$('#pagination-demo').twbsPagination({
totalPages: 35,
visiblePages: 7,
onPageClick: function (event, page) {
$('#page-content').text('Page ' + page);
}
});
<ul id="pagination-demo" class="pagination-sm"></ul>
具体的流程不太了解,但是总体上是这样的,你不用管很多参数,只需要给后台传递page,也就是当前页就好,这个值在onPageClick事件中触发。
具体说下我是如何实现的:
插件的JS代码
$('#pagination-demo').twbsPagination({ totalPages: totalCount, visiblePages: 5, href : '${cxf}/wiki/list/{{number}}', onPageClick: function (event, page) { $('#page-content').text('Page ' + page); }});
这里需要几个参数:
对于totalPages我是这样处理的:
var totalCount = 20;// $.ajax({ async:false, type:"get", dataType : "json", url: "${cxf}/wiki/queryAll", success : function(data){ if(data.status ==200){ totalCount = data.data; totalCount = (totalCount % 10 == 0) ? totalCount / 10 : totalCount / 10 + 1; } } });
这里的逻辑是这样的:
Java后台的代码
@RequestMapping(value = "list/{page}")
public String listByPage(@PathVariable(value = "page") Integer start, Model model) {
Integer limit = pageSize;
if(start == null){
start = 1;
}
List list = wikiContentService.listByPages(Integer.valueOf(start), limit);
model.addAttribute("contents", list);
return "list";
}
@RequestMapping(value = "queryAll")
@ResponseBody
public WikiResult queryAll(){
List<WikiContent> list = wikiContentService.queryAll();
WikiResult result = new WikiResult();
result.setStatus(200);
result.setData(list.size());
return result;
}
最后的效果:
页面做的比较丑,不要见怪哟,自己对这块也不是很熟悉,在找资料的时候很多细节想不通,网上完整的代码也比较少,深刻的了解这里面的痛苦,自己虽然做出来了,但是效果还是不太好,肯定有更好的方法去实现,也请指教。
分页其实可以由前台和后台共同完成。
后台分页的逻辑就是:
必须要有3个参数:
我会这么处理这些数据:
total%pageSize == 0 ? total/pageSize : total%pageSize+1;
大概也就这么些东西吧,不太详细,先分享了。
2024 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123