bootstrap自带分页器的构造函数

/**
 * 生成分页器
 * @param ele 需要添加分页器的元素
 * @param offset 偏移量,即从第offset开始
 * @param length 总记录条数
 * @param showPages 分页器显示的页数,超过则隐藏多余的页
 * @param rows 每页显示的记录条数
 * @param cssType 分页样式,不填则为默认表格后添加tr
 */
function burster(ele, offset, length, showPages, rows, cssType) {
    //将分页器装入table中
    if (length && length > offset) {
        var pageHtml = "";
        //清空需要装入的html
        var ass = "";
        //需要显示的前页数/当前页
        var beforePages = Math.ceil(offset / rows);
        //需要显示的后页数
        var afterPages = Math.ceil((length - offset ) / rows);
        //总页数
        var pages = Math.ceil(length / rows);
        var k = 0;
        //alert("总页数" + pages + " 前页数 " + beforePages + " 后页数 " + afterPages);
        //若页数小于showPages页,则全部显示
        if (pages >= 0 && pages <= showPages) {
            for (k = 0; k < pages; k++) {
                if (k == beforePages) {
                    pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
                } else {
                    pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
                }
            }
        }
        //总页数大于showPages页
        else if (pages > showPages) {
            if (beforePages <= Math.ceil(showPages / 2) && afterPages > showPages + 1) {
                for (k = 0; k < showPages; k++) {
                    if (k == beforePages) {
                        pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
                    } else {
                        pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
                    }
                }
                pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
            }
            else if (beforePages <= Math.ceil(showPages / 2) && afterPages == showPages + 1) {
                for (k = 0; k < showPages - 1; k++) {
                    if (k == beforePages) {
                        pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
                    } else {
                        pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
                    }
                }
                pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
            }
            else if (beforePages <= Math.ceil(showPages / 2) && afterPages <= showPages) {
                for (k = 0; k < showPages - 1; k++) {
                    if (k == beforePages) {
                        pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
                    } else {
                        pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
                    }
                }
                pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
            }
            else if (beforePages > Math.ceil(showPages / 2) && beforePages <= showPages && afterPages > showPages) {
                pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
                for (k = beforePages - Math.ceil(showPages / 2) + 1; k < beforePages + Math.ceil(showPages / 2); k++) {
                    if (k == beforePages) {
                        pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
                    } else {
                        pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
                    }
                }
                pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
            }
            else if (beforePages > showPages && afterPages > showPages) {
                pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
                for (k = beforePages - Math.ceil(showPages / 2) + 1; k < beforePages + Math.ceil(showPages / 2); k++) {
                    if (k == beforePages) {
                        pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
                    } else {
                        pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
                    }
                }
                pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
            }
            else if (beforePages > Math.ceil(showPages / 2) && beforePages <= pages && afterPages <= showPages && afterPages > Math.ceil(showPages / 2) + 1) {
                pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
                for (k = beforePages - Math.ceil(showPages / 2) + 1; k < beforePages + Math.ceil(showPages / 2); k++) {
                    if (k == beforePages) {
                        pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
                    } else {
                        pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
                    }
                }
                pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
            }
            else if (beforePages > pages && afterPages <= showPages && afterPages > Math.ceil(showPages / 2) + 1) {
                pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
                for (k = beforePages - Math.ceil(showPages / 2) + 1; k < beforePages + Math.ceil(showPages / 2); k++) {
                    if (k == beforePages) {
                        pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
                    } else {
                        pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
                    }
                }
                pageHtml += "<li><a class='pages' offset='" + ((pages - 1) * rows) + "'>..." + pages + "</a></li>";
            }
            else if (beforePages > Math.ceil(showPages / 2) && afterPages <= Math.ceil(showPages / 2) + 1) {
                pageHtml += "<li><a class='pages' offset='0'>1...</a></li>";
                for (k = beforePages - Math.ceil(showPages / 2) + 1; k < pages; k++) {
                    if (k == beforePages) {
                        pageHtml += "<li class='active' ><a>" + (k + 1) + "</a></li>";
                    } else {
                        pageHtml += "<li><a class='pages' offset='" + (k * rows) + "'>" + (k + 1) + "</a></li>";
                    }
                }
            }
        }

        //判断"上一页"和"下一页"是否存在
        var upPage;
        var downPage;
        if (offset == 0 || (offset < rows && (offset % rows != 0))) {
            upPage = "<li><a class='pages' offset='" + parseInt(offset) + "' >?</a></li>"
        } else {
            upPage = "<li><a class='pages' offset='" +
                (parseInt(offset) - parseInt(rows)) +
                "' >?</a></li>";
        }
        if (offset >= (length - rows)) {
            downPage = "<li><a class='pages' offset='" + parseInt(offset) + "'>?</a></li>"
        } else {
            downPage = "<li><a class='pages' offset='" +
                parseInt(parseInt(offset) + parseInt(rows)) +
                "'>?</a></li>"
        }
        //TODO 自定义分页器的样式
        if (cssType) {
            if (pages != 1) {//TODO 分页页数小于1页时,不分页
                if (cssType == "【自定义的样式名】") {
                    ass += "<div id='pager' style='position:relative;height:34px;margin:0; '>" +
                        "<ul  style='position:absolute;right:0;margin: 0;' class='pagination'>" +
                        upPage + pageHtml + downPage +
                        "</ul></div>";
                    //table中注入拼装的记录
                    ele.append(ass);
                }
            } else {
            }
        } else {
            //分页部分
            ass += "<tr><td colspan='10' align='right'>" +
                "<div id='pager' style='position:relative;height:40px;'>" +
                "<h4 id='result' style='position:absolute;left:0;'>" +
                "共有" + length + "条记录</h4>" +
                "<ul  style='position:absolute;right:0;' class='pagination'>" +
                upPage + pageHtml + downPage +
                "</ul></div></td></tr>";
            //table中注入拼装的记录
            ele.append(ass);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值