美文网首页
bootstrap-table分页(web前端)

bootstrap-table分页(web前端)

作者: 新世纪好青年 | 来源:发表于2019-08-08 16:44 被阅读0次

bootstrap-table插件,有分页,有可跳转至,先附上效果图

1565253292(1).png
<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" src="js/bootstrap.min.js"></script>
        <script src="bootstrap-table/bootstrap-table.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript" src="bootstrap-table/locale/bootstrap-table-zh.js"></script>
        <script type="text/javascript" src="js/pagejump.js"></script>

        <link rel="stylesheet" href="css/bootstrap.min.css" />
        <link rel="stylesheet" href="bootstrap-table/bootstrap-table.min.css" />
        <link rel="stylesheet" type="text/css" href="css/pagejump.css" />
    </head>

    <body style="padding: 30px;">
        <table id="table" class="table table-hover" data-height="500" data-show-jump-to="true" data-pagination="true">
            <thead>
                <tr>
                    <th>项目1</th>
                    <th>项目1</th>
                    <th>项目1</th>
                    <th>项目1</th>
                </tr>
            </thead>
            <tbody id="tbody"></tbody>
        </table>

        <script type="text/javascript" src="js/index.js"></script>
    </body>

</html>

这部分直接新建一个js文件引入即可

(function($) {
    'use strict';
    $.extend($.fn.bootstrapTable.defaults, {
        // 默认不显示
        paginationShowPageGo: false
    });

    $.extend($.fn.bootstrapTable.locales, {
        pageGo: function() {
            // 定义默认显示文字,其它语言需要扩展
            return '跳转至';
        }
    });
    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);

    var BootstrapTable = $.fn.bootstrapTable.Constructor,
        _initPagination = BootstrapTable.prototype.initPagination;

    // 扩展已有的初始化分页组件的方法
    BootstrapTable.prototype.initPagination = function() {
        _initPagination.apply(this, Array.prototype.slice.apply(arguments));
        // 判断是否显示跳转到指定页码的组件
        if(this.options.paginationShowPageGo) {
            var html = [];
            // 渲染跳转到指定页的元素
            html.push(
                '<ul class="pagination-jump">',
                '<li class=""><span>' + this.options.pageGo() + ':</span></li>',
                '<li class=""><input style="margin-left: 1px;margin-right: 1px;border-radius: 4px;" type="text" class="page-input" value="' + this.options.pageNumber + '"   /></li>',
                '<li class=""><span style="padding-left: 3px;">页</span></li>',
                '<li class="page-go"><a class="jump-go" href="" style="border-radius: 4px;">跳转</a></li>',
                '</ul>');

            // 放到原先的分页组件后面
            this.$pagination.find('ul.pagination').after(html.join(''));
            // 点击按钮触发跳转到指定页函数
            this.$pagination.find('.page-go').off('click').on('click', $.proxy(this.onPageGo, this));
            // 手动输入页码校验,只允许输入正整数
            this.$pagination.find('.page-input').off('keyup').on('keyup', function() {
                this.value = this.value.length == 1 ? this.value.replace(/[^1-9]/g, '') : this.value.replace(/\D/g, '');
            });
        }
    };

    // 自定义跳转到某页的函数
    BootstrapTable.prototype.onPageGo = function(event) {
        // 获取手动输入的要跳转到的页码元素
        var $toPage = this.$pagination.find('.page-input');
        // 当前页不做处理
        if(this.options.pageNumber === +$toPage.val()) {
            return false;
        }
        // 调用官方的函数
        this.selectPage(+$toPage.val());
        return false;
    };
})(jQuery);
$(function() {
    for(var i = 0; i < 45; i++) {
        var html = '<tr>';
        html += '<td>' + i + '</td>';
        html += '<td>123</td>';
        html += '<td>2019-08-01至2019-08-31</td>';
        html += '<td>456</td>';
        html += '</tr>';
        $("#tbody").append(html);
    }
    $('#table').bootstrapTable({
        striped: true, // 是否显示行间隔色
        pageSize: "10",
        pagination: true, // 是否分页
        showPaginationSwitch: false,
        pageList: [],
        paginationShowPageGo: true
    });
})

css部分

.pagination-jump {
    margin: 0;
}

.pagination-jump {
    display: inline-block;
    padding-left: 1px;
    border-radius: 4px;
}

.pagination-jump>li {
    display: inline;
}

.pagination-jump>li>a, .pagination-jump>li>input, .pagination-jump>li>span {
    position: relative;
    float: left;
    margin-left: -1px;
    line-height: 1.42857143;
    color: rgba(102, 156, 254, 1);
    text-decoration: none;
    background-color: #fff;
}

.pagination-jump>li>a {
    padding: 6px 12px;
    border: 1px solid #ddd;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

.pagination-jump>li>input {
    padding: 6px 0px;
    border: 1px solid #ddd;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    width: 36px;
    text-align: center;
}

.pagination-jump>li>span{
    padding: 6px 3px 6px 12px;
}


.pagination-jump>li>.jump-go {
    margin-left: 0;
    padding: 6px;
}

相关文章

网友评论

      本文标题:bootstrap-table分页(web前端)

      本文链接:https://www.haomeiwen.com/subject/bboxjctx.html