Bootstrap table两种分页示例

Bootstrap Table 是基于Bootstrap的一个开源的支持响应式的好用的数据表格插件。

Bootstrap Table有默认的分页功能,用起来也非常方便。但是,有时候默认的分页还不够满足我们的需求,我们需要自定义一些分页功能。下面我们将介绍Bootstrap Table两种分页示例。

示例1:自定义分页

首先,我们需要将Bootstrap Table引入到我们的网站中。可以通过以下代码来引入:

<link href="//cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link href="//cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.css" rel="stylesheet">
<script src="//cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
<script src="//cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="//cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.js"></script>

接下来,我们需要自定义分页功能。可以通过以下代码来实现:

function setPage(number, size) {
    $('#table').bootstrapTable('selectPage', number); 
} 

function customPagination(total, pageSize, pageNumber) {  
    var html = [];  
    html.push('<ul class="pagination">');  
    var totalPages = Math.ceil(total / pageSize);  
    var middle = Math.floor(totalPages / 2);  
    var currentPage = pageNumber > totalPages ? totalPages : pageNumber;  
    var firstPage = currentPage == 1 ? true : false;  
    var lastPage = currentPage == totalPages ? true : false;  
    var startPage, endPage;  

    if (totalPages > 5) {  
        if (currentPage <= middle) {  
            startPage = 1;  
            endPage = 5;  
        } else if (currentPage + 2 >= totalPages) {  
            startPage = totalPages - 4;  
            endPage = totalPages;  
        } else {  
            startPage = currentPage - 2;  
            endPage = currentPage + 2;  
        }  
    } else {  
        startPage = 1;  
        endPage = totalPages;  
    }  

    if (firstPage) {  
        html.push('<li class="disabled"><a href="javascript:void(0);">上一页</a></li>');  
    } else {  
        html.push('<li><a href="javascript:void(0);" onclick="setPage(' + (currentPage - 1) + ',' + pageSize + ');">上一页</a></li>');  
    }  

    for (var i = startPage; i <= endPage; i++) {  
        if (currentPage == i) {  
            html.push('<li class="active"><a href="javascript:void(0);">' + i + '</a></li>');  
        } else {  
            html.push('<li><a href="javascript:void(0);" onclick="setPage(' + i + ',' + pageSize + ');">' + i + '</a></li>');  
        }  
    }  

    if (lastPage) {  
        html.push('<li class="disabled"><a href="javascript:void(0);">下一页</a></li>');  
    } else {  
        html.push('<li><a href="javascript:void(0);" onclick="setPage(' + (currentPage + 1) + ',' + pageSize + ');">下一页</a></li>');  
    }  

    html.push('</ul>');  
    return html.join('');  
}  

$(function() {
    $('#table').bootstrapTable({
        pagination: true,
        pageSize: 10,
        pageList: [10, 20, 50, 100],
        paginationPreText: "上一页",
        paginationNextText: "下一页",
        paginationFirstText: "第一页",
        paginationLastText: "最后一页",
        paginationLoop: false,
        paginationShowPageGo: true,
        paginationPrePageText: "<",
        paginationNextPageText: ">",
        paginationDetailHAlign: "right",
        paginationHAlign: "left",
        paginationVAlign: "bottom",
        paginationSuccessivelySize: 2,
        paginationPagesBySide: 1,
        paginationUseIntermediate: true,
        onPageChange: function(pageNumber, pageSize) {
            alert("onPageChange: " + pageNumber + "," + pageSize);
        },
        onPagePre: function(pageNumber, pageSize) {
            alert("onPagePre: " + pageNumber + "," + pageSize);
            return true;
        },
        onPageNext: function(pageNumber, pageSize) {
            alert("onPageNext: " + pageNumber + "," + pageSize);
            return true;
        },
        onPageFirst: function(pageNumber, pageSize) {
            alert("onPageFirst: " + pageNumber + "," + pageSize);
            return true;
        },
        onPageLast: function(pageNumber, pageSize) {
            alert("onPageLast: " + pageNumber + "," + pageSize);
            return true;
        },
        onPageGo: function(pageNumber, pageSize) {
            alert("onPageGo: " + pageNumber + "," + pageSize);
        },
        onPageRowsPerPage: function(pageNumber, pageSize) {
            alert("onPageRowsPerPage: " + pageNumber + "," + pageSize);
        },
        onPageTotalRows: function(pageNumber, pageSize) {
            alert("onPageTotalRows: " + pageNumber + "," + pageSize);
        },
        onPageCached: function(pageNumber, pageSize) {
            alert("onPageCached: " + pageNumber + "," + pageSize);
        },
        paginationPrePage: function() {
            alert("paginationPrePage");
        },
        paginationNextPage: function() {
            alert("paginationNextPage");
        },
        paginationSwitchDown: function() {
            alert("paginationSwitchDown");
        },
        paginationSwitchUp: function() {
            alert("paginationSwitchUp");
        },
        paginationVisible: false,
        paginationInfo: true,
        paginationItem: true,
        paginationInfoFragment: "共{totalRows}条记录,当前显示第{startRow}到第{endRow}条",
        paginationNiceText: false,
        paginationPrependPage: true,
        paginationBold: false,
        onPageChangeLive: function(tableData) {
            console.log("onPageChangeLive: " + tableData);
        },
        customPagination: customPagination
    });
});

示例2:使用自带的ajax分页

要使用自带的ajax分页,需要将data-url改为指向我们的数据源,并且将pageNumber和pageSize参数设置为true。示例代码如下:

$(function () {
    $('#table').bootstrapTable({
        url: 'testdata.json', // 数据源
        pagination: true, // 启用分页
        sidePagination: 'server', // 设置分页模式,server端分页
        pageSize: 10, // 每页显示记录数
        pageList: [10, 20, 50, 100], // 每页显示记录数列表
        pageNumber: true, // 显示分页按钮
        queryParamsType: '', // 重写queryParam
        queryParams: function (params) {
            params.pageNumber = params.pageNumber || 1; // 分页参数
            params.pageSize = params.pageSize || 10; // 分页参数
            return params;
        }
    });
});

以上就是Bootstrap Table自定义分页和使用自带的ajax分页的示例代码和攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Bootstrap table两种分页示例 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 在vue项目中引入scss并使用scss样式详解

    在Vue项目中引入SCSS并使用SCSS样式详解 在Vue项目中,我们可以使用SCSS(Sass)来编写样式,并通过引入SCSS文件来使用这些样式。下面是在Vue项目中引入SCSS并使用SCSS样式的完整攻略。 步骤一:安装依赖 首先,我们需要安装相关的依赖。在Vue项目的根目录下,打开终端并执行以下命令: npm install sass-loader n…

    other 2023年7月29日
    00
  • C++ 面试题目(整理自牛客网)

    首先我们需要明确该面试题目整理自牛客网,也就是说,可以参考一些牛客网上的题解或解析,从而得到更好的答案。当然,最好还是自己能够熟练掌握相关知识,并进行实际的练习。下面,我将为大家详细讲解这个面试题目的攻略。 1. 了解面试题目的背景和目标 在准备面试题目前,首先要了解这个面试题目的背景和目标。这道题目涵盖了许多C++的基础知识,如指针、堆栈、内存管理、STL…

    other 2023年6月27日
    00
  • zepeto进不去怎么办 zepeto一直在加载解决方法

    问题描述:在使用zepeto的过程中,有些用户会遇到无法进入或者一直在加载的情况。这种情况可能是由于网络连接问题或者其他因素导致的。本文将提供一些可能的解决方法供大家参考。 解决方法一:检查网络连接并重试1. 检查手机的网络连接状态,确保网络连接正常。2. 如果网络连接正常,但是仍然无法进入zepeto,可以尝试等待一段时间后重试。 解决方法二:清除缓存和数…

    other 2023年6月25日
    00
  • c字裤怎么穿

    下面就是如何穿c字裤的完整攻略。 1.选择合适的尺码 选择合适的尺码非常重要,因为过大或者过小的尺码都会影响舒适度和穿着效果。建议选购有弹性的面料,有助于更好地贴合身体。同时,要注意裤子腰围是否合适,以免裤子下滑。 2.搭配合适的上衣 穿搭是非常重要的,特别是在上半身的搭配。C字裤的紧身设计,需要搭配上衣和鞋子以达到更好的穿着效果和搭配感。对于女性来说,可以…

    其他 2023年4月16日
    00
  • 3dsMax创建面板有哪些功能?

    3ds Max是一款功能强大的三维建模和动画软件,它提供了多个面板,每个面板都有不同的功能。以下是一些常见的面板及其功能: 创建面板:创建面板提供了各种创建基本几何体和复杂模型的工具。您可以使用这些工具创建立方体、球体、圆柱体等基本几何体,也可以使用它们创建复杂的建筑、车辆、角色等模型。 修改面板:修改面板用于编辑和修改已创建的模型。您可以使用修改面板中的工…

    other 2023年10月15日
    00
  • Android应用中使用Fragment组件的一些问题及解决方案总结

    Android应用中使用Fragment组件的一些问题及解决方案总结 Background Fragment是Android中的一个组件,与Activity类似,可以用于UI交互和视图管理。常见的使用场景是在大屏幕设备上,如平板电脑,可以将不同的功能区域以Fragment的形式分离开来,每个Fragment可以独立管理自己的生命周期和UI控件。 在实际的开发…

    other 2023年6月27日
    00
  • php页面跳转三种实现方法

    php页面跳转三种实现方法 在开发网站时,经常需要进行页面跳转,以供用户访问不同的页面。本文将介绍三种实现php页面跳转的方法。 Header方式跳转 header() 函数可以用来发送HTTP头信息。当我们需要跳转到另外一个页面时,可以发送HTTP头信息来实现页面跳转。 <?php header("Location: http://www.…

    其他 2023年3月28日
    00
  • PowerShell ISE中代码转换大小写的技巧

    PowerShell ISE中代码转换大小写的技巧攻略 在PowerShell ISE中,你可以使用一些技巧来转换代码的大小写。下面是一些示例说明: 1. 使用ToUpper()和ToLower()方法 你可以使用ToUpper()和ToLower()方法来将代码转换为大写或小写。下面是一个示例: # 原始代码 $myString = \"Hell…

    other 2023年8月17日
    00
合作推广
合作推广
分享本页
返回顶部