Ajax固定分页模板+pagehelper

72 篇文章 0 订阅
38 篇文章 0 订阅

前端部分

  • 引入 jss ,css
    <link rel="stylesheet" type="text/css" href="css/jquery.page.css">
    
    <script type="text/javascript" src="js/jquery.page.js"></script>

    总条数  修改js

  • dataHtml+='<span style="display:inline-block;margin-right: 16px;line-height:30px;" id="sumCount"></span>'

    jquery.page.js     js内容

  • (function($){var defaults={totalPages:9,liNums:9,activeClass:'active',firstPage:'首页',lastPage:'末页',prv:'«',next:'»',hasFirstPage:true,hasLastPage:true,hasPrv:true,hasNext:true,callBack:function(page){}};$.fn.Page=function(options){var opts=$.extend(defaults,options);return this.each(function(){var obj=$(this);var l=opts.totalPages;var n=opts.liNums;var active=opts.activeClass;var str='';var str1='<li><a href="javascript:" class="'+active+'">1</a></li>';if(l>1&&l<n+1){for(i=2;i<l+1;i++){str+='<li><a href="javascript:">'+i+'</a></li>';}}else if(l>n){for(i=2;i<n+1;i++){str+='<li><a href="javascript:">'+i+'</a></li>';}}
        var dataHtml='';if(opts.hasNext){dataHtml+='<span style="display:inline-block;margin-right: 16px;line-height:30px;" id="sumCount"></span><div class="next fr">'+opts.next+'</div>';}
        if(opts.hasLastPage){dataHtml+='<div class="last fr">'+opts.lastPage+'</div>';}
        dataHtml+='<ul class="pagingUl">'+str1+str+'</ul>';if(opts.hasFirstPage){dataHtml+='<div class="first fr">'+opts.firstPage+'</div>';}
        if(opts.hasPrv){dataHtml+='<div class="prv fr">'+opts.prv+'</div>';}
        obj.html(dataHtml).off("click");obj.on('click','.next',function(){var pageshow=parseInt($('.'+active).html());var nums,flag;var a=n%2;if(a==0){nums=n;flag=true;}else if(a==1){nums=(n+1);flag=false;}
            if(pageshow>=l){return;}else if(pageshow>0&&pageshow<=nums/2){$('.'+active).removeClass(active).parent().next().find('a').addClass(active);}else if((pageshow>l-nums/2&&pageshow<l&&flag==false)||(pageshow>l-nums/2-1&&pageshow<l&&flag==true)){$('.'+active).removeClass(active).parent().next().find('a').addClass(active);}else{$('.'+active).removeClass(active).parent().next().find('a').addClass(active);fpageShow(pageshow+1);}
            opts.callBack(pageshow+1);});obj.on('click','.prv',function(){var pageshow=parseInt($('.'+active).html());var nums=odevity(n);if(pageshow<=1){return;}else if((pageshow>1&&pageshow<=nums/2)||(pageshow>l-nums/2&&pageshow<l+1)){$('.'+active).removeClass(active).parent().prev().find('a').addClass(active);}else{$('.'+active).removeClass(active).parent().prev().find('a').addClass(active);fpageShow(pageshow-1);}
            opts.callBack(pageshow-1);});obj.on('click','.first',function(){var activepage=parseInt($('.'+active).html());if(activepage<=1){return}
            opts.callBack(1);fpagePrv(0);});obj.on('click','.last',function(){var activepage=parseInt($('.'+active).html());if(activepage>=l){return;}
            opts.callBack(l);if(l>n){fpageNext(n-1);}else{fpageNext(l-1);}});obj.on('click','li',function(){var $this=$(this);var pageshow=parseInt($this.find('a').html());var nums=odevity(n);opts.callBack(pageshow);if(l>n){if(pageshow>l-nums/2&&pageshow<l+1){fpageNext((n-1)-(l-pageshow));}else if(pageshow>0&&pageshow<nums/2){fpagePrv(pageshow-1);}else{fpageShow(pageshow);}}else{$('.'+active).removeClass(active);$this.find('a').addClass(active);}});function fpageShow(activePage){var nums=odevity(n);var pageStart=activePage-(nums/2-1);var str1='';for(i=0;i<n;i++){str1+='<li><a href="javascript:" class="">'+(pageStart+i)+'</a></li>'}
            obj.find('ul').html(str1);obj.find('ul li').eq(nums/2-1).find('a').addClass(active);}
        function fpagePrv(index){var str1='';if(l>n-1){for(i=0;i<n;i++){str1+='<li><a href="javascript:" class="">'+(i+1)+'</a></li>'}}else{for(i=0;i<l;i++){str1+='<li><a href="javascript:" class="">'+(i+1)+'</a></li>'}}
            obj.find('ul').html(str1);obj.find('ul li').eq(index).find('a').addClass(active);}
        function fpageNext(index){var str1='';if(l>n-1){for(i=l-(n-1);i<l+1;i++){str1+='<li><a href="javascript:" class="">'+i+'</a></li>'}
            obj.find('ul').html(str1);obj.find('ul li').eq(index).find('a').addClass(active);}else{for(i=0;i<l;i++){str1+='<li><a href="javascript:" class="">'+(i+1)+'</a></li>'}
            obj.find('ul').html(str1);obj.find('ul li').eq(index).find('a').addClass(active);}}
        function odevity(n){var a=n%2;if(a==0){return n;}else if(a==1){return(n+1);}}});}})(jQuery);

    jquery.page.css   css 内容

  • @charset "utf-8";
    /*样式参考*/
    a {
      text-decoration: none;
    }
    
    #page {
      height: 50px;
      display: table;
      margin: 0 auto;
    }
    
    .page {
      text-align: center;
    }
    
    .fl {
      float: left;
    }
    
    .fr {
      float: right;
    }
    
    .pagingUl {
      float: right;
      padding: 0;
      margin: 0;
      list-style: none;
      height: 30px;
    }
    
    .pagingUl li {
      float: left;
      width: 30px;
      height: 30px;
      background: #fff;
      text-align: center;
      margin-right: 5px;
      border-radius: 5px
    }
    
    .pagingUl li a {
      display: inline-block;
      width: 30px;
      height: 30px;
      text-align: center;
      line-height: 28px;
      color: #666;
      font-size: 12px;
      border-radius: 5px
    }
    
    .prv,
    .next {
      width: 30px;
      height: 30px;
      text-align: center;
      line-height: 30px;
      cursor: pointer;
      background: #fff;
      padding: 0 5px;
      border-radius: 5px;
    }
    
    .prv {
      margin-right: 10px;
    }
    
    .first,
    .last {
      width: 36px;
      height: 30px;
      font-size: 12px;
      text-align: center;
      line-height: 30px;
      /*border: 1px solid #ddd;*/
      cursor: pointer;
      background: #fff;
      padding: 0 5px;
      border-radius: 5px;
      margin-right: 10px;
    }
    
    .prv:hover,
    .next:hover,
    .first:hover,
    .last:hover,
    .pagingUl li a:hover,
    .activP {
      background-color: #1ab394!important;
      color: #fff!important;
    }

     

.设置布局

<div id="page"></div>

 .Ajax请求

function page() {
    var count=$('#count').val();      //数据的总数量
    var pageSize=$('#pageSize').val(); //每页显示的条数
    var pageCount=Math.ceil(count/pageSize);  
    $("#page").Page({
        totalPages:pageCount,//分页总数
        liNums: 7,//分页的数字按钮数(建议取奇数)
        activeClass: 'activP', //active 类样式定义
        callBack : function(page){
            $('#pagi').val(page);
            show();
        }
    });
    $('#sumCount').text("共"+count+"条");
}


上面的方法通用的分页方法(配合这个通用的列表显示方法)
function show(){
    var deviceVersion=$('#deviceVersion  option:selected').val();
    var state=$('#state option:selected').val();
    var period=$('#period option:selected').val();
    var deployAddress=$('#deployAddress').val();
    var Belonger=$('#Belonger').val();
    var createTime1=$('#createTime1').val();
    var createTime2=$('#createTime2').val();
    var periodTime1=$('#periodTime1').val();
    var updateTime1=$('#updateTime1').val();
    var updateTime2=$('#updateTime2').val();
    var pagi=$('#pagi').val();
    var pageSize=$('#pageSize').val();
    $.ajax({
        url:'quipment/selectList',
        type:'get',
        async:false,                        //同步加载
        data:{maViseion:deviceVersion,
            state:state,
            period:period,
            deployAddress:deployAddress,
            Belonger:Belonger,
            createTime1:createTime1,
            createTime2:createTime2,
            periodTime1:periodTime1,
            updateTime1:updateTime1,
            updateTime2:updateTime2,
            pagi:pagi,
            pageSize:pageSize,
        },
        dataType:'json',
        success:function(res){
            var datas=res.obj;
            $('#count').val(res.totleNum);//总条数
            var str="";
            for(var i=0;i<datas.length;i++){
                var state = "";
                if(datas[i].state){
                    if(datas[i].state==1){
                        state  = "全新入库";
                    }else if(datas[i].state==3){
                        state  = "损坏报修";
                    }else if(datas[i].state==4){
                        state  = "退货回收";
                    }else if(datas[i].state==6){
                        state  = "外借已归还";
                    }else if(datas[i].state==7){
                        state  = "正常";
                    }else {
                        state = "";
                    }
                }
                str+='<tr id="'+datas[i].ttId+'" class="idt">' +
                        '                    <td>'+[i+1]+'</td>' +
                        '                    <td>'+datas[i].deviceId+'</td>' +
                        '                    <td>'+datas[i].maViseion+'</td>' +
                        '                    <td>'+Format(datas[i].createTime,"yyyy-MM-dd")+'</td>' +
                        '                    <td>'+datas[i].period+'</td>' +
                        '                    <td>'+Format(datas[i].periodTime,"yyyy-MM-dd")+'</td>' +
                        '                    <td>'+datas[i].deployAddress+'</td>' +
                        '                    <td>'+state+'</td>' +
                        '                    <td class="parent" id="'+datas[i].maId+'"> '+
                        '                    <a href="javascript:;" class="choose open_add_page1" id="'+datas[i].maId+'">修改</a>' +
                        // '                    <a href="javascript:;" class="del" id="'+datas[i].maId+'">删除</a>' +
                        '</td> ' +
                        '                </tr>'
            }
            $('.list').html(str)
        }
    })
}

调用方法

     show();
     page();

 注意:在要默认给分页参数,一般有两种获得默认参数方法,定义全局变量或者设置在隐藏的控件中设置

后台部分:

引入jar包

<!--分页-->
		<dependency>
			<groupId>com.github.pagehelper</groupId>
			<artifactId>pagehelper-spring-boot-starter</artifactId>
			<version>1.2.3</version>
		</dependency>

代码部分


 PageHelper.startPage(pagi, pageSize);                 //PageHelper的方法配置分页参数
 List<Borrow> list=borrowService.selectListBorrow(borrow);//这里正常调用分页
 PageInfo<Borrow> pageInfo=new PageInfo<>(list);
 return  jsonOut.selectOut(pageInfo.getList(),(int)pageInfo.getTotal());

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值