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日

相关文章

  • 使用cordova+vue搭建混合app框架

    使用Cordova+Vue搭建混合App框架 什么是混合App? 混合App是利用 WebView 组件在原生应用中运行 HTML、CSS 和 JavaScript 的一种方法。它将 Web 技术和移动设备的本地特性结合起来,使得开发人员能够快速地创建跨平台应用程序。 为什么使用Cordova+Vue? Cordova 是一个开源框架,它提供了一个基于 We…

    其他 2023年3月29日
    00
  • 使用自定义注解和@Aspect实现责任链模式的组件增强的详细代码

    下面我将详细讲解如何使用自定义注解和@Aspect实现责任链模式的组件增强。 第一步:定义自定义注解 在Java中,使用注解可以将特定的标记附加到类、方法、参数或变量等程序元素上,以便以后进行处理。因此,我们需要先定义一个自定义注解,用于标记需要增强的组件。定义自定义注解的代码如下: @Retention(RetentionPolicy.RUNTIME) @…

    other 2023年6月25日
    00
  • Linux中使用Pyinotify模块实时监控文件系统更改

    当我们需要实时监控文件系统下文件或目录的变化时,可以借助Python的Pyinotify模块来实现。本文将详细讲解如何在Linux中使用Pyinotify模块实时监控文件系统更改。 安装Pyinotify模块 首先,我们需要在Linux系统中安装Pyinotify模块。可以通过以下命令进行安装: pip install pyinotify 编写监控程序 接下…

    other 2023年6月27日
    00
  • php获取本机真实IP地址实例代码

    当使用PHP编写Web应用程序时,有时需要获取访问者的真实IP地址。然而,由于代理服务器和负载均衡等因素的存在,直接使用$_SERVER[‘REMOTE_ADDR’]可能无法获取到真实的IP地址。下面是获取本机真实IP地址的示例代码: function getRealIP() { if (!empty($_SERVER[‘HTTP_CLIENT_IP’]))…

    other 2023年7月30日
    00
  • golang实现浏览器导出excel文件功能

    下面是详细的“golang实现浏览器导出excel文件功能”的攻略。 前言 Excel文件是企业中非常重要的文档格式之一,因此在很多场景下都需要通过浏览器导出Excel文件。本文将介绍在Golang中如何实现浏览器导出Excel文件功能。 原理和方案 在Golang中,我们可以通过任何能够返回二进制文件的HTTP处理函数进行文件下载。可以通过以下三种方式实现…

    other 2023年6月26日
    00
  • python-如何在python中实现接口(interface)?

    在Python中,虽然没有像Java和C#那样的接口(interface)概念,但是我们可以通过抽象基类(abstract base class)和第三方库来实现类似于口的功能。以下是实现接口的完整攻略: 1. 使用抽象基类(ABC)实现接口 抽象基类Python中的一种特殊类,它不能被实例化,只能被继承。我们可以通过定义抽象方法来实现接口的功能。以下是一个…

    other 2023年5月8日
    00
  • 利用腾讯的ip地址库做ip物理地址定位

    利用腾讯的IP地址库做IP物理地址定位攻略 1. 获取腾讯IP地址库 首先,我们需要获取腾讯的IP地址库,该库包含了大量IP地址与物理地址的映射关系。腾讯提供了免费的IP地址库查询接口,我们可以通过发送HTTP请求来获取数据。 示例代码如下: import requests # 发送HTTP请求获取IP地址库数据 response = requests.ge…

    other 2023年7月30日
    00
  • 百度帐号怎么修改昵称?

    当用户注册百度账号后,有时候会需要修改自己的昵称,以下是修改百度账号昵称的详细攻略。 前置条件 已经在百度网站注册并登录成功 已经有需要修改的昵称 操作步骤 进入百度个人中心网址,在页面中部附近找到“账号设置”选项,点击进入账号设置页面。 在账号设置页面的“基本资料”选项中,找到“昵称”一项,旁边是当前账户的昵称,点击昵称右侧的“修改”链接即可进入修改昵称页…

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