网站分析软件phpwind wordpress
网站分析软件,phpwind wordpress,万能浏览器网页版,wordpress固定链接 中文说明 在开发中分页功能几乎是必不可少的一项功能#xff0c;使用beego框架开发时#xff0c;就遇到了分页功能的需求。可能是之前版本并不支持#xff0c;我发现有很多自己实现的分页功能的封装#xff0c;在阅读了官方源码时#xff0c;我发现了分页功能的封装#xff0… 说明 在开发中分页功能几乎是必不可少的一项功能使用beego框架开发时就遇到了分页功能的需求。可能是之前版本并不支持我发现有很多自己实现的分页功能的封装在阅读了官方源码时我发现了分页功能的封装但是我觉得使用起来非常难用后来在官方文档里发现其给的示例中使用了前端的框架把分页交给前端是个明智的选择。
以下为官方的示例链接
type Page struct {PageNo intPageSize intTotalPage intTotalCount intFirstPage boolLastPage boolList interface{}
}
func PageUtil(count int, pageNo int, pageSize int, list interface{}) Page {tp : count / pageSizeif count % pageSize 0 {tp count / pageSize 1}return Page{PageNo: pageNo, PageSize: pageSize, TotalPage: tp, TotalCount: count, FirstPage: pageNo 1, LastPage: pageNo tp, List: list}
}
可以看到官方只是实现了根据总数和每页个数计算页数逻辑那么更重要的是在前端。
script typetext/javascript src/static/js/bootstrap-paginator.min.js/script
script typetext/javascript$(function () {$(#page).bootstrapPaginator({currentPage: {{.Page.PageNo}},totalPages: {{.Page.TotalPage}},bootstrapMajorVersion: 3,size: small,onPageClicked: function(e,originalEvent,type,page){window.location.href /?p page}});});
/script
前端也只是写了配置对于刚上手的人来说好像一头雾水。 思路 既然是前端作为主要实现那么解决方案分为两种 1. 把所有数据都传到前端在前端实现对不同页数据的分割这适用于数据量较小的情况。 2. 把一部分数据传到前端只传需要分页的那一部分。这适用于大量的数据。
我这里讲的是后者的实现。
前端
根据github地址找到相关项目但其官网已经打不开了只能去下载release版本https://github.com/lyonlai/bootstrap-paginator/releases
解压后会有index.html的官方文档里面讲了一些简单的用法具体的配置也可以看这个http://www.cnblogs.com/moretry/p/4441728.html
link hrefcss/bootstrap.css relstylesheet
script typetext/javascript srcjs/jquery-1.8.1.js/script
script typetext/javascript srcjs/bootstrap-paginator.min.js/script
需要引入相关文件其中依赖bootstarp和jQuery1.8在bootstarp2.x里必须用div 标签来使用在bootstarp3.x里必须使用ul 标签来使用。
以下是我的写法因为其将marginTop设置为20px我不需要所以又调了。
script typetext/javascript$(.page).bootstrapPaginator({currentPage: {{.Page.PageNo}},totalPages: {{.Page.TotalPage}},useBootstrapTooltip:true,bootstrapMajorVersion: 3,size: small,onPageClicked: function (e, originalEvent, type, page) {window.location.href /problems?p page}});$(.pagination).css(margin,0)
/script
在后端我添加了对不合法页数的修正同时又将返回的数据设置成了slice当然在控制器传参时会出现一些问题可以参考我前一篇文章的解决方案链接
func PageUtil(count int, pageNo int, pageSize int, list []interface{}) Page {tp : count / pageSizeif count % pageSize 0 {tp count / pageSize 1}if pageNo 1 || pageNo * pageSize countpageSize{pageNo 1}st,end : pageSize*(pageNo-1),pageSize*(pageNo)if st count || st 0{st 0;}if end count || end 0 {end count}pageList : list[st:end]return Page{PageNo: pageNo, PageSize: pageSize, TotalPage: tp, TotalCount: count, FirstPage: pageNo 1, LastPage: pageNo tp, List: pageList}
}
还有一种设计是设计后端api然后前端去ajax但是我觉得没有这种实现更简单有兴趣的可以去研究研究。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91512.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!