Bootstrap table两种分页示例

yizhihongxing

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日

相关文章

  • Linux系统交换空间介绍

    Linux系统交换空间介绍 什么是交换空间? 交换空间(Swap Space)是Linux系统中的一部分磁盘空间,用于存储内存中暂时不活跃的进程或页面。当系统的物理内存不足时,操作系统会将一些不常用的内存页面转移到交换空间中,以释放物理内存供其他进程使用。 为什么需要交换空间? 交换空间的存在有以下几个原因: 扩展可用内存:交换空间可以扩展系统的可用内存。当…

    other 2023年8月2日
    00
  • Linux文件目录解析 多个文件目录的作用介绍

    让我来为你详细讲解“Linux文件目录解析 多个文件目录的作用介绍”的完整攻略。 Linux文件目录解析 Linux系统的文件目录结构是一个树形结构,由根目录、分支目录和叶目录组成,每一个目录都可以包含下一个目录或者文件。 常见的Linux文件目录如下: / :根目录,包含所有其他的文件或目录 /bin :包含Linux系统所有用户可以执行的命令 /dev …

    other 2023年6月27日
    00
  • C语言菜鸟基础教程之加法

    C语言菜鸟基础教程之加法 前言 加法作为数学中最基本的运算之一,在C语言中也有着非常重要的地位。本篇教程将为大家介绍C语言中的加法运算,帮助大家从零开始了解C语言中的加法运算。 加法的定义 在C语言中,加法运算使用+符号进行表示。它可以对两个数值型数据进行加法运算,并返回一个新的结果。 加法的基本用法 在C语言中,使用加法运算非常简单。只需要按照以下步骤即可…

    other 2023年6月27日
    00
  • 央视影音怎么查看版本号?央视影音查看版本号方法

    央视影音是中国中央电视台推出的一款视频播放软件,如果你想查看央视影音的版本号,可以按照以下步骤进行操作: 打开央视影音应用:在你的设备上找到央视影音应用的图标,点击打开应用。 进入设置页面:在央视影音的主界面上,通常会有一个设置按钮,一般是一个齿轮或者三个竖直排列的点。点击该按钮,进入设置页面。 查看版本号:在设置页面中,你可以找到一个关于或者版本信息的选项…

    other 2023年8月3日
    00
  • Win8蓝屏提示错误代码0x000000f4的解决方法

    Win8蓝屏提示错误代码0x000000f4的解决方法 问题描述 在Win8系统中,有时会出现蓝屏提醒,提示错误代码0x000000f4,导致电脑无法正常使用。这种情况下,我们需要找到问题的根源,才能解决它,下面是具体步骤。 可能原因 Windows临时文件或文件夹受损、系统文件或硬盘数据损坏等是造成Win8蓝屏提示错误代码0x000000f4的常见原因。 …

    other 2023年6月26日
    00
  • Forms身份认证在IE11下无法保存Cookie的问题

    问题描述: 在IE11下,通过Forms身份认证登录某个网站后,该网站返回的Cookie无法保存,导致每次刷新或关闭浏览器后都需要重新登录。 问题分析: 这个问题的根本原因在于IE11对于跨域能力(CORS)的实现。跨域的本质是在浏览器端发送一次Options请求并且在响应头中带上Access-Control-Allow-Credentials: true来…

    other 2023年6月27日
    00
  • Java构造方法和方法重载详解

    Java构造方法和方法重载详解 在Java中,构造方法和方法重载是面向对象编程中的重要概念。构造方法用于创建对象并初始化其状态,而方法重载允许我们在同一个类中定义多个具有相同名称但参数列表不同的方法。本文将详细介绍Java构造方法和方法重载的概念和用法,并提供示例说明。 构造方法(Constructor) 构造方法是一种特殊的方法,用于在创建对象时初始化对象…

    other 2023年8月6日
    00
  • 部属vue项目,访问路径设置非根,显示白屏的解决方案

    下面是针对“部署Vue项目,访问路径设置非根,显示白屏的解决方案”的完整攻略: 问题描述 在部署Vue项目时,如果访问路径设置为非根路径,如/subpath,则在访问页面时会出现白屏或404的情况。 解决方案 1. 在vue.config.js中设置publicPath 在Vue项目的配置文件vue.config.js中,可以通过设置publicPath来指…

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