js 分页管理

pagination.js

 

function pagination(name,page,pageCount,perPageCount,perCount) { //初始化属性
        this.name = name;      //对象名称
        this.page = page;         //当前页数
        this.pageCount = pageCount;    //总页数
        this.argName = 'page'; //参数名
        this.showTimes = 1;    //打印次数
        this.perPageCount = perPageCount;   //每页显示条数
        this.perCount = perCount;  //显示出的跳转页码数,如[1][2][3][4][5][6][7][8][9][10]
}

pagination.prototype.checkPages = function(){ //进行当前页数和总页数的验证
        if (isNaN(parseInt(this.page))) this.page = 1;
        if (isNaN(parseInt(this.pageCount))) this.pageCount = 1;
        if (this.page < 1) this.page = 1;
        if (this.pageCount < 1) this.pageCount = 1;
        if (this.page > this.pageCount) this.page = this.pageCount;
        this.page = parseInt(this.page);
        this.pageCount = parseInt(this.pageCount);
}
pagination.prototype.createHtml=function(mode){
 var strHtml = '', prevPage = this.page - 1, nextPage = this.page + 1;
    if (mode == '' || typeof(mode) == 'undefined') mode = 0;
     switch (mode) {
      case 0 :
         
                      
                        if (prevPage < 1) {
                                strHtml += '<span title="首页">首页</span>';
                                strHtml += '<span title="上页">上页</span>';
                        } else {
                                strHtml += '<span title="首页"><a href="javascript:toPage(1);">首页</a></span>';
                                strHtml += '<span title="上页"><a href="javascript:toPage(' + prevPage + ');">上页</a></span>';
                        }
                        if (this.page % this.perCount ==0) {
                                var startPage = this.page - this.perCount + 1;
                        } else {
                                var startPage = this.page - this.page % this.perCount + 1;
                        }
                        if (startPage > this.perCount) strHtml += '<span title="前'+this.perCount+'页"><a href="javascript:toPage(' + (startPage - 1) + ');">...</a></span>';
                        for (var i = startPage; i < startPage + this.perCount; i++) {
                                if (i > this.pageCount) break;
                                if (i == this.page) {
                                        strHtml += ''+ i + '';
                                } else {
                                        strHtml += '<a href="javascript:toPage(' + i + ');">' + i + '</a>';
                                }
                        }
                        if (this.pageCount >= startPage + this.perCount) strHtml += '<span title="后'+this.perCount+'页"><a href="javascript:toPage(' + (startPage + this.perCount) + ');">...</a></span>';
                        if (nextPage > this.pageCount) {
                                strHtml += '<span title="后页">后页</span>';
                                strHtml += '<span title="尾页">尾页</span>';
                        } else {
                                strHtml += '<span title="后页"><a href="javascript:toPage(' + nextPage + ');">后页</a></span>';
                                strHtml += '<span title="尾页"><a href="javascript:toPage(' + this.pageCount + ');">尾页</a></span>';
                        }
                       
                        break;
                       
   case 9 :
         
                      
                        if (prevPage < 1) {
                                strHtml += '<span title="首页">首页</span>';
                                strHtml += '<span title="上页">上页</span>';
                        } else {
                                strHtml += '<span title="首页"><a href="javascript:goPage(1);">首页</a></span>';
                                strHtml += '<span title="上页"><a href="javascript:goPage(' + prevPage + ');">上页</a></span>';
                        }
                        if (this.page % this.perCount ==0) {
                                var startPage = this.page - this.perCount + 1;
                        } else {
                                var startPage = this.page - this.page % this.perCount + 1;
                        }
                        if (startPage > this.perCount) strHtml += '<span title="前'+this.perCount+'页"><a href="javascript:goPage(' + (startPage - 1) + ');">...</a></span>';
                        for (var i = startPage; i < startPage + this.perCount; i++) {
                                if (i > this.pageCount) break;
                                if (i == this.page) {
                                        strHtml += ''+ i + '';
                                } else {
                                        strHtml += '<a href="javascript:goPage(' + i + ');">' + i + '</a>';
                                }
                        }
                        if (this.pageCount >= startPage + this.perCount) strHtml += '<span title="后'+this.perCount+'页"><a href="javascript:goPage(' + (startPage + this.perCount) + ');">...</a></span>';
                        if (nextPage > this.pageCount) {
                                strHtml += '<span title="后页">后页</span>';
                                strHtml += '<span title="尾页">尾页</span>';
                        } else {
                                strHtml += '<span title="后页"><a href="javascript:goPage(' + nextPage + ');">后页</a></span>';
                                strHtml += '<span title="尾页"><a href="javascript:goPage(' + this.pageCount + ');">尾页</a></span>';
                        }
                       
                        break;
          default :
                        strHtml = 'Javascript showPage Error: not find mode ' + mode;
                        break;
     }
     return strHtml;
}

pagination.prototype.printHtml = function(mode){ //显示html代码
  this.checkPages();
        this.showTimes += 1;
        document.write('<span id="pages_' + this.name + '_' + this.showTimes + '" class="pagination"></span>');
        document.getElementById('pages_' + this.name + '_' + this.showTimes).innerHTML = this.createHtml(mode);
       
}


function toPage(pageIndex){
  var toUrl;
  var xfUrl = document.location.href;
    
    if(xfUrl.indexOf("page=")<0){
     toUrl=xfUrl+'&page='+pageIndex;
    }else{
     var xfPara = xfUrl.split("?")[1];
   var xfParaArr = xfPara.split("&");
   for(var x=0;x<xfParaArr.length;x++){
   if(xfParaArr[x].indexOf('page')>=0){
    xfParaArr[x]='page='+pageIndex;
    }
   }
   xfPara='';
   for(var x=0;x<xfParaArr.length;x++){
    if(x==0){
     xfPara+=xfParaArr[x];
    }else{
     xfPara+='&'+xfParaArr[x];
    }
    
   }
   toUrl=xfUrl.split("?")[0]+"?"+xfPara;
    }
    location.href=toUrl;
 
}

 

页面:

 

 <tr style="height: 24px ;">
    <td colspan="15" align="center" height="48">
     <c:if test="${null != page}">
      <script type="text/javascript">
      var pg=new pagination('pg',${page.pageIndex},${page.pageCount},${page.pageSize},10);
        pg.printHtml(9);
      </script>
     </c:if>
    </td>
   </tr>

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值