bootstrap 自己写分页功能
2019-08-15 14:59
996 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41515189/article/details/99635187
<!--css样式--> .page { text-align: center; margin: 10px 0 -20px 0; } a:hover{ cursor: pointer; } .page .current { background: #FF0403; color: white; }
HTML页面
<input type="hidden" id="currentPage" value="1">//当前页码 <input type="hidden" id="totalPages" value="">//总页码 <input type="hidden" id="origin" value="">//上次的页码 当前页面有多个分页的时候需要 <div class="list-div" style="margin-right: 10%;"></div>//分页html
前端JS代码
$(function (){ showdata();//若没有地方调用代码,则需要页面初始化加载时默认调用 }); //请求页面数据 function showdata(){ var origin=$("#myselect").val();//上次的页码 var currentPage = $('#currentPage').val();//当前页码 var totalPages = $('#totalPages').val();//总页码 if($("#origin").val()!=origin){ currentPage=1; } $.ajax({ type:"POST", url:"", data:{ page:currentPage,//当前页码 origin : origin,//上次的页码 limit:'10'//每页记录条数 }, dataType:"json", success:function(res){ if(res.errcode==0){ var info = res.data;//页面数据 var total = res.count[0].count;//总记录条数 showPage(total,currentPage,info,origin);//调用并传参给分页函数 }else{ showPage(total=0,currentPage=0,info=0,origin); } }, error:function (XMLHttpRequest, textStatus, errorThrown) { toast(textStatus + errorThrown); } }); } //分页展示信息 function showPage(total,currentPage,info,origin){ $("table").html('');//展示数据的容器 $(".list-div").html('');//分页容器 if(info.length>0){ var tr='<thead><th>xx</th><th>xx</th><th>xx</th><th>xx</th></thead>'; var num=0; for(var i = 0;i < info.length;i++){ tr+='<tr>'+ '<td>'+(i+1)+'</td>'+ '<td>'+info[i]['xx']+'</td>'+ '<td>'+info[i]['xx']+'</td>'+ '<td >'+info[i]['xx']+'</td></tr>'; } $("table").append(tr) var totalPages = Math.ceil(total/10); //计算总页码数 $('#totalPages').val(totalPages);//把总页数存到隐藏框里 var current = currentPage ? parseInt(currentPage):1; //当前页数 $('#currentPage').val(current);//把当前页存放到隐藏框 $("#origin").val(origin);//将上次的页码写入隐藏域 用作比对是否新请求 var s='<nav class="page" aria-label="Page navigation"><ul class="pagination"><li><a class="first">首页</a></li>'; if(current != 1){ s += '<li><a class="down">上一页</a></li>'; } for(var i=current-2;i<= current+2;i++){ if(i>0 && i <= totalPages){ if(current==i) { s += '<li class="thisclass"><a class="current center">'+ i +'</a></li>'; }else { s += '<li><a class="center">'+ i +'</a></li>'; } } } if(current != totalPages){ s += '<li><a class="up">下一页</a></li>'; } s += '<li><a class="last">末页</a></li>'+ '<li><span class="pageinfo">共<strong style="color:red;">'+ totalPages +'</strong>页</li>'+ '<li><span class="pageinfo">共<strong style="color:red;">'+ total +'</strong>条数据</li>'+ '<li><input type="number" min="1" max="'+totalPages+'" id="page" placeholder="输入页码" style="width:100px;display:inline-block;height:32px;" class="form-control"></li>'+ '<li><input class="btn btn-danger" type="submit" onclick="openPage()" value="确定" style="width:60px;"/></li></ul></nav>'; $(".list-div").html(s); //给分页列表绑定事件 bindingEvent(); }else{ //没有符合条件的数据 $(".table").append('<thead><th>xx</th><th>xxx</th><th>xx</th><th>xx</th></thead><tr><td colspan="5" style="text-align:center;">'+'暂无数据'+'</td></tr>'); } } //给分页列表绑定事件的方法 function bindingEvent() { $(".first").click(function(){ if($("#currentPage").val() != 1 && $('#totalPages').val() != 0){ //第一页点击时无效 $("#currentPage").val(1);//即第一页 showdata(); //请求数据 } }) $(".last").click(function(){ if($("#currentPage").val() != $('#totalPages').val() && $('#totalPages').val() != 0){ //最后一页点击时无效 var total = $('#totalPages').val();//把总页数存到隐藏框里 $("#currentPage").val(total); showdata(); } }) $(".down").click(function(){ if($('#totalPages').val() != 0){ //总页数为0时,不能点击无效,主要是考虑搜索没数据时的情况 var n = $("#currentPage").val(); if(n>1){ n--; }else{ n=1; } $("#currentPage").val(n); showdata(); } }) $(".up").click(function(){ if($('#totalPages').val() != 0){ //总页数为0时,不能点击无效,主要是考虑搜索没数据时的情况 var n = $("#currentPage").val(); if(n<totalPages){ n++; }else{ n=totalPages; } $("#currentPage").val(n); showdata(); } }) $(".center").click(function(){ if($('#totalPages').val() != 0){ //总页数为0时,不能点击无效,主要是考虑搜索没数据时的情况 var n = $ 3ff7 (this).text(); if($("#currentPage").val() != n){ $("#currentPage").val(n);//中间的页码,点击哪一页就去那一页 showdata(); } } }) } //改变页面的显示数据条数 function openPage(){ var currentPage=$("#page").val(); var max=$("#page").attr("max"); if(isNumber(currentPage)){ if(parseInt(currentPage)>0 && parseInt(currentPage)<=parseInt(max)){ $('#currentPage').val(currentPage); showdata(); }else{ alert("请输入有效页码"); } }else{ alert("请输入正确数字"); } } //检验是否是数字 function isNumber(value){ var re = /^[0-9]+.?[0-9]*$/; if (!re.test(value)){ return false; } return true; }
相关文章推荐
- SSM框架搭建以及简单增删改查以及分页功能的实现(前端bootstrap+css+jq)
- java自己动手实现分页功能
- 自己扩展封装Hibernate模板DAO-之三Hibernate+JSP的分页功能
- 自定义标签实现分页功能[看了点网上的,自己在写的。还不错。欢迎点评]
- 基于之前写的博客(SSM框架搭建以及简单增删改查以及分页功能的实现(前端bootstrap+css+jq))进一步的封装(改为SqlSessionTemplate方式实现)
- bootstrap在使用中的样式问题(自带的前台js分页和自己编写的后台分页方法)
- Bootstrap 分页功能
- 自己封装的JS分页功能[用于搭配后台使用]
- 实现Repeater分页功能,该方法可以直接复制到自己的项目
- 关于bootstrap分页,模态框,实现邮件列表的分页,和模态框添加邮件的功能
- 自己写的Gridview分页功能
- 10小时入门java开发04 springboot+freemarker+bootstrap快速实现分页功能
- 自己根据“XDOWNPAGE ASP版本”分页程序修改(添加前十页,后十页功能)
- Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。
- 利用Bootstrap Paginator插件和KnockoutJS完成分页功能
- 自己做过分页功能吗?我们一起打造自己的分页控件
- ThinkPHP3.2.3 验证码 上传图片 制作缩略图 2.为自己的项目封装功能类 利用Page工具类实现分页效果 后台管理员登录系统实现
- 第一次自己写分页功能感想
- bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
- Angular+Bootstrap+Spring Boot实现分页功能实例代码