bootstrap table 简介及特性

简介

Bootstrap table 是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能。

官网地址:http://bootstrap-table.wenzhixin.net.cn/

官网可以下载使用所需的 JS 和 CSS 文件,以及参考文档和例子。

特性
  • 支持 Bootstrap 3

  • 自适应界面

  • 固定表头

  • 非常丰富的配置参数

  • 直接通过标签使用

  • 显示/隐藏列

  • 显示/隐藏表头

  • 通过 AJAX 获取 JSON 格式的数据

  • 支持排序

  • 格式化表格

  • 支持单选或者多选

  • 强大的分页功能

  • 支持卡片视图

  • 支持多语言

  • 支持插件

bootstrap table渲染数据到表格的方式

Bootstrap-Table显示数据到表格的方式有两种:一种是客户端(client)模式,一种是服务器(server)模式。

客户端模式(前端分页)

所谓客户端模式指的是在服务器中把要显示到表格的数据一次性加载出来,然后转换成 JSON 格式传到要显示的界面中,在 JavaWeb 中可以保存在 request中,然后转发到指定界面,在界面初始化的时候使用 EL 表达式获取,然后调用相关初始化的函数,将 JSON 字符串传进去即可显示。

客户端模式较为简单,它是把数据一次性加载出来放到界面上,然后根据你设置的每页记录数,自动生成分页。当点击第二页时,会自动加载出数据,不会再向服务器发送请求。同时用户可以使用其自带的搜索功能,可以实现全局数据搜索。对于数据量较少的时候,可以使用这个方法。但是对于数据量大的系统,使用该方法会造成加载出一些很久之前的,用户不在关注的数据,使得加载速度变慢,增加了服务器的负担,浪费了资源。这时应该采用服务器模式。

服务器模式(后端分页)

所谓服务器模式,指的是根据设定的每页记录数和当前要显示的页码,发送数据到服务器进行查询,然后再显示到表格中。该方法可以根据用户的需要动态的加载数据,节省了服务器的资源,但是不能使用其自带的全数据搜索功能。因为你加载的数据只是一页的数据,所以全数据搜索的范围也只在一页之中。

客户端模式较为简单,你可根据官方文档和例子自行实践。这里我主要介绍服务器模式,并可以实现带参数的查询。

bootstrap-table 插件引入

  1. Bootstrap 的所有 JavaScript 插件都依赖 jQuery,因此 jQuery 必须在 Bootstrap 之前引入,目前使用稳定版本jquery.1.12.1.js

  2. Bootstrap Table 是 Bootstrap 的一个插件,所以它是依赖 Bootstrap 的,我们首先需要添加 Bootstrap 的引用

  3. 在Bootstrap Table 的官网上下载 js 和 css 文件

具体如下:

  1. <!-- 1、Jquery组件引用-->
  2. <script src="../js/jquery.min.js?v=1.11.2"></script>
  3. <!-- 2、bootstrap组件引用-->
  4. <link href="../css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
  5. <script src="../js/bootstrap.min.js?v=3.3.6"></script>
  6. <!-- 3、bootstrap-table组件引用-->
  7. <link href="../css/plugins/bootstrap-table/bootstrap-table.min.css?v=1.11.1" rel="stylesheet" />
  8. <script src="../js/plugins/bootstrap-table/bootstrap-table.min.js?v1.11.0"></script>
  9. <script src="../js/plugins/bootstrap-table/bootstrap-table-zh-CN.js?v1.11.0"></script><!--显示中文-->

使用 bootstrap-table 实现一个简单的表格和前端分页

效果如下:

代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>bootstrap-table</title>
  6. <!-- 1、Jquery组件引用-->
  7. <script src="Bootstrap/js/jquery.js"></script>
  8. <!-- 2、bootstrap组件引用-->
  9. <link href="Bootstrap/css/bootstrap.min.css" rel="stylesheet">
  10. <script src="Bootstrap/js/bootstrap.min.js"></script>
  11. <!-- 3、bootstrap-table组件引用-->
  12. <link href="bootstrap-table/css/bootstrap-table.css" rel="stylesheet" />
  13. <script src="bootstrap-table/js/bootstrap-table.min.js"></script>
  14. <script src="bootstrap-table/js/bootstrap-table-zh-CN.js"></script><!--显示中文-->
  15. </head>
  16. <body>
  17. <table id="mytable" class="table table-hover"></table>
  18. <script>
  19. $('#mytable').bootstrapTable({
  20. url: 'data.json',
  21. queryParams: "queryParams",
  22. toolbar: "#toolbar",
  23. sidePagination: "true",
  24. striped: true, // 是否显示行间隔色
  25. //search : "true",
  26. uniqueId: "ID",
  27. pageSize: "5",
  28. pagination: true, // 是否分页
  29. sortable: true, // 是否启用排序
  30. columns: [{
  31. field: 'id',
  32. title: '登录名'
  33. },
  34. {
  35. field: 'name',
  36. title: '昵称'
  37. },
  38. {
  39. field: 'price',
  40. title: '角色'
  41. },
  42. {
  43. field: 'price',
  44. title: '操作',
  45. width: 120,
  46. align: 'center',
  47. valign: 'middle',
  48. formatter: actionFormatter,
  49. },
  50. ]
  51. });
  52. //操作栏的格式化
  53. function actionFormatter(value, row, index) {
  54. var id = value;
  55. var result = "";
  56. result += "<a href='javascript:;' class='btn btn-xs green' onclick=\"viewById('" + id + "', view='view')\" title='查看'><span class='glyphicon glyphicon-search'></span></a>";
  57. result += "<a href='javascript:;' class='btn btn-xs blue' onclick=\"editById('" + id + "')\" title='编辑'><span class='glyphicon glyphicon-pencil'></span></a>";
  58. result += "<a href='javascript:;' class='btn btn-xs red' onclick=\"delById('" + id + "')\" title='删除'><span class='glyphicon glyphicon-remove'></span></a>";
  59. return result;
  60. }
  61. //查看表格一行事件处理方法
  62. function viewById(id) {
  63. alert("查看"+id);
  64. }
  65. //编辑表格一行事件处理方法
  66. function editById(id) {
  67. alert("编辑"+id);
  68. }
  69. //删除表格一行事件处理方法
  70. function delById(id) {
  71. alert("删除"+id)
  72. }
  73. </script>
  74. </body>
  75. </html>

测试 data.json 数据如下:

  1. [
  2. {
  3. "id": 0,
  4. "name": "Item 0",
  5. "price": "$0"
  6. },
  7. {
  8. "id": 1,
  9. "name": "Item 1",
  10. "price": "$1"
  11. },
  12. {
  13. "id": 2,
  14. "name": "Item 2",
  15. "price": "$2"
  16. },
  17. {
  18. "id": 3,
  19. "name": "Item 3",
  20. "price": "$3"
  21. },
  22. {
  23. "id": 4,
  24. "name": "Item 4",
  25. "price": "$4"
  26. },
  27. {
  28. "id": 5,
  29. "name": "Item 5",
  30. "price": "$5"
  31. },
  32. {
  33. "id": 6,
  34. "name": "Item 6",
  35. "price": "$6"
  36. },
  37. {
  38. "id": 7,
  39. "name": "Item 7",
  40. "price": "$7"
  41. },
  42. {
  43. "id": 8,
  44. "name": "Item 8",
  45. "price": "$8"
  46. },
  47. {
  48. "id": 9,
  49. "name": "Item 9",
  50. "price": "$9"
  51. },
  52. {
  53. "id": 10,
  54. "name": "Item 10",
  55. "price": "$10"
  56. },
  57. {
  58. "id": 11,
  59. "name": "Item 11",
  60. "price": "$11"
  61. },
  62. {
  63. "id": 12,
  64. "name": "Item 12",
  65. "price": "$12"
  66. },
  67. {
  68. "id": 13,
  69. "name": "Item 13",
  70. "price": "$13"
  71. },
  72. {
  73. "id": 14,
  74. "name": "Item 14",
  75. "price": "$14"
  76. },
  77. {
  78. "id": 15,
  79. "name": "Item 15",
  80. "price": "$15"
  81. },
  82. {
  83. "id": 16,
  84. "name": "Item 16",
  85. "price": "$16"
  86. },
  87. {
  88. "id": 17,
  89. "name": "Item 17",
  90. "price": "$17"
  91. },
  92. {
  93. "id": 18,
  94. "name": "Item 18",
  95. "price": "$18"
  96. },
  97. {
  98. "id": 19,
  99. "name": "Item 19",
  100. "price": "$19"
  101. },
  102. {
  103. "id": 20,
  104. "name": "Item 20",
  105. "price": "$20"
  106. }
  107. ]

BootstrapTable的属性一览

  1. url: '/Home/GetDepartment', //请求后台的URL(*)
  2. method: 'get', //请求方式(*)
  3. toolbar: '#toolbar', //工具按钮用哪个容器
  4. striped: true, //是否显示行间隔色
  5. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  6. pagination: true, //是否显示分页(*)
  7. sortable: false, //是否启用排序
  8. sortOrder: "asc", //排序方式
  9. queryParams: oTableInit.queryParams,//传递参数(*)
  10. sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*)
  11. pageNumber:1, //初始化加载第一页,默认第一页
  12. pageSize: 10, //每页的记录行数(*)
  13. pageList: [10, 25, 50, 100], //可供选择的每页的行数(*)
  14. search: true, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  15. strictSearch: true,
  16. showColumns: true, //是否显示所有的列
  17. showRefresh: true, //是否显示刷新按钮
  18. minimumCountColumns: 2, //最少允许的列数
  19. clickToSelect: true, //是否启用点击选中行
  20. height: 500, //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
  21. uniqueId: "ID", //每一行的唯一标识,一般为主键列
  22. showToggle:true, //是否显示详细视图和列表视图的切换按钮
  23. cardView: false, //是否显示详细视图
  24. detailView: false, //是否显示父子表
  25. columns: [{}] //表格标题

Bootstrap Table相关文档

想要了解更多关于 Bootstart Table 插件的细节,可以查看以下相关文档。

Boostrap bootstrap-table插件使用教程的更多相关文章

  1. bootstrap table 插件多语言切换

    在bootstrap中的bootstrap table 插件在多语言切换的审核,只需要如下操作 引入bootstrap-table-locale-all.js文件 $('#Grid').bootstr ...

  2. bootstrap table插件动态加载表头

    这篇文章主要为大家详细介绍了bootstrap table插件动态加载表头,具有一定的参考价值,感兴趣的小伙伴们可以参考一下   bootstrap的table属性已经很熟悉了,最近遇到一个问题,犹豫 ...

  3. 使用bootstrap table 插件固定表头时 表头与表格内容无法对齐

    在使用bootstrap table开发后台管理系统,表格利用bootstrap-table插件来实现,使用bootstrap-table过程中,会出现表头错位的情况 表头对不齐效果: 解决的方法: ...

  4. 在ASP.NET MVC中使用 Bootstrap table插件

    Bootstrap table: http://bootstrap-table.wenzhixin.net.cn/zh-cn/getting-started/ 1. 控制器代码: using Syst ...

  5. 利用BootStrap Table插件实现自己的弹出框分页。

    参考链接1:    官网:http://bootstrap-table.wenzhixin.net.cn/zh-cn/home/        开始使用:http://bootstrap-table. ...

  6. bootstrap table 插件 搜索

    以前用过easyui datagrid 每次搜索的时候调用datagrid构造方法 重新获取数据, 发现bootstrap-table 插件不行,只需要初始化一次, 以后每次搜索时,直接调用refre ...

  7. Bootstrap table插件 被选中的行颜色改变

    参考:https://www.jianshu.com/p/1bb4c37ef636 在 bootstrap-table.min.css 中修改源码 //选中行颜色 .fixed-table-conta ...

  8. [前端插件]Bootstrap Table服务器分页与在线编辑应用总结

    先看Bootstrap Table应用效果: 表格用来显示数据库中的数据,数据通过AJAX从服务器加载,同时分页功能有服务器实现,避免客户端分页,在加载大量数据时造成的用户体验不好.还可以设置查询数据 ...

  9. bootstrap table + spring + springmvc + mybatis 实现从前端到后端的表格分页

    1.使用准备 前台需要的资源文件,主要有Bootstrap3相关css.js以及bootstrap Table相关css.js: <-- 样式 --> <link rel=" ...

  10. bootstrap Table从零开始

      本文博主将从零开始,一步一步的告诉大家如何在前端用bootstrap Table插件展示一个表格 首先,要下载bootstrap Table插件所必须的js,地址:https://github.c ...

随机推荐

  1. Nginx/Apache + acme.sh 实现https访问

    1 概述 acme.sh实现了acme协议,可以从Let's Encrypt生成免费的ssl证书用于实现https,本文介绍了常见的两种服务器Apache与Nginx上利用acme.sh配置https ...

  2. 一起来看Java设计思想之23种设计模式

    目录 怎么使用设计模式 23种设计模式 创建型模式 结构型模式 行为型模式 总结 怎么使用设计模式 为什么要使用设计模式? 编写代码,写接口.写类.写方法 用设计模式做设计的作用是什么? 指导.规定如 ...

  3. 多图详解 TCP 连接管理,太全了!!!

    TCP 是一种面向连接的单播协议,在 TCP 中,并不存在多播.广播的这种行为,因为 TCP 报文段中能明确发送方和接受方的 IP 地址. 在发送数据前,相互通信的双方(即发送方和接受方)需要建立一条 ...

  4. 【Azure Developer】使用Java SDK代码创建Azure VM (包含设置NSG,及添加数据磁盘SSD)

    在参考Azure官方文档进行VM创建时,发现其中没有包含如何设置NSG的内容,以及如何在创建时就添加数据磁盘的代码(设置磁盘为SSD类型).本文的内容以"使用 Java 创建和管理 Azur ...

  5. Day16_89_通过反射机制获取所有构造方法

    通过反射机制获取某个特定的构造方法 * 代码 import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; publ ...

  6. 谈谈react hooks的优缺点

    前言Hook 是 React 16.8 的新增特性.它是完全可选的,并且100%向后兼容.它可以让你使用函数组件的方式,运用类组件以及 react 其他的一些特性,比如管理状态.生命周期钩子等.从概念 ...

  7. kafka管理工具-kafka manager安装

    kafka-manager 简介 # 项目信息 https://github.com/yahoo/kafka-manager 安装 环境要求: Kafka 0.8.. or 0.9.. or 0.10 ...

  8. 展开说说,Spring Bean IOC、AOP 循环依赖

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 延迟满足能给你带来什么? 大学有四年时间,但几乎所有人都是临近毕业才发现找一份好工作 ...

  9. php中var关键字用法

    见很多朋友说在php中定义变量用不用var都没关系,其实不然. 看看例子,如果我这样使用var: 1 var $a=123; 2 echo $a; 3 //那么程序会提示语法错误,要去掉var这个变量 ...

  10. table边框完全去掉的方法

    表格中边框的显示 只显示上边框 <table frame=above> 只显示下边框 <table frame=below> 只显示左.右边框 <table frame= ...