bootstrap-table表格详解实例

1.引入资源部分

<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>

 

 
  1. <!-- 样式 -->

  2. <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.12.1/bootstrap-table.min.css">

  3.  
  4. <!-- js文件 -->

  5. <script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.12.1/bootstrap-table.min.js"></script>

  6.  
  7. <!-- 中文压缩包 -->

  8. <script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.12.1/locale/bootstrap-table-zh-CN.min.js"></script>

2.HTML部分

 
  1.     <!--工具-->

  2. <div id="toolbar" class="btn-group">

  3. <button id="btn-add" type="button" class="btn">

  4. <span aria-hidden="true" class="icon icon-plus-sign"></span>新增

  5. </button>

  6. <button id="btn-del" type="button" class="btn">

  7. <span aria-hidden="true" class="icon icon-remove-sign"></span>删除

  8. </button>

  9. </div>

 

 
  1. <!--bootstrap-table表格-->

  2. <table id="data-table"></table>

3.JS部分

 
  1. var $table = $('#data-table');

  2.  
  3. $(window).resize(function () {

  4. //防止表头与表格不对齐

  5. $table.bootstrapTable('resetView');

  6. });

  7.  
  8. $(function () {

  9. //使用严格模式

  10. "use strict";

  11. //表格初始化

  12. tableInit();

  13. $table.bootstrapTable('hideLoading');//隐藏加载

  14. })

  15.  
  16. function tableInit() {

  17. /**

  18. * 初始化Table

  19. */

  20. //先销毁表格

  21. $table.bootstrapTable('destroy');

  22. //再初始化表格

  23. $table.bootstrapTable({

  24. //请求地址,此处数据为本地加载

  25. //url: "",

  26. //请求方式

  27. method: "POST",

  28. //请求内容类型

  29. contentType: "application/x-www-form-urlencoded",

  30. //数据类型

  31. dataType: "json",

  32. //table高度:如果没有设置,表格自动根据记录条数觉得表格高度

  33. height: '582',

  34. //是否显示行间隔色

  35. striped: true,

  36. //是否启用排序

  37. sortable: true,

  38. //排序方式

  39. sortOrder: "asc",

  40. //是否使用缓存

  41. cache: false,

  42. //每行的唯一标识

  43. uniqueId: "id",

  44. //指定工具栏

  45. toolbar: "#toolbar",

  46. //显示刷新按钮

  47. showRefresh: true,

  48. //切换显示样式

  49. showToggle: true,

  50. //默认显示详细视图

  51. cardView: false,

  52. //是否显示搜索

  53. search: true,

  54. //是否显示分页

  55. pagination: true,

  56. //是否启用点击选中行

  57. clickToSelect: false,

  58. //最少要显示的列数

  59. minimumCountColumns: 2,

  60. //显示隐藏列

  61. showColumns: true,

  62. //cell没有值时显示

  63. undefinedText: '-',

  64. //分页方式:client客户端分页,server服务端分页

  65. sidePagination: "server",

  66. //每页的记录行数

  67. pageSize: 20,

  68. //初始化加载第1页,默认第1页

  69. pageNumber: 1,

  70. //可供选择的每页的行数

  71. pageList: "[10, 20, 50, 80, 100]",

  72. paginationFirstText: "首页",

  73. paginationPreText: "上一页",

  74. paginationNextText: "下一页",

  75. paginationLastText: "末页",

  76. //按钮样式

  77. buttonsClass: 'btn',

  78. //分页器class

  79. iconSize: 'pager',

  80. //查询条件

  81. queryParams: queryParams,

  82. //表头

  83. columns: [{

  84. field: 'state',//id

  85. checkbox: true,//checkbox

  86. align: 'center',//对其方式

  87. valign: 'middle'//对其方式

  88. }, {

  89. title: '用户编号',

  90. field: 'custNo',

  91. align: 'center',

  92. valign: 'middle',

  93. }, {

  94. title: '用户名',

  95. field: 'custName',

  96. align: 'center',

  97. valign: 'middle'

  98. }, {

  99. title: '密码',

  100. field: 'password',

  101. align: 'center',

  102. valign: 'middle'

  103. }, {

  104. title: '加盐',

  105. field: 'salt',

  106. align: 'center',

  107. valign: 'middle'

  108. }, {

  109. title: '标志',

  110. field: 'efftflage',

  111. align: 'center',

  112. valign: 'middle'

  113. }, {

  114. title: '创建时间',

  115. field: 'createTime',

  116. align: 'center',

  117. valign: 'middle'

  118. }, {

  119. title: '修改时间',

  120. field: 'modifyTime',

  121. align: 'center',

  122. valign: 'middle'

  123. }, {

  124. title: '操作',

  125. field: 'operate',

  126. align: 'center',

  127. events: window.operateEvents,

  128. formatter: genderOpt//如需操作行数据,直接添加formatter对应函数名参数分别为value, row, index

  129. }],

  130. onLoadSuccess: function (res) {//可不写

  131. //加载成功时

  132. console.log(res);

  133. }, onLoadError: function (statusCode) {

  134. return "加载失败了"

  135. }, formatLoadingMessage: function () {

  136. //正在加载

  137. return "拼命加载中...";

  138. }, formatNoMatches: function () {

  139. //没有匹配的结果

  140. return '无符合条件的记录';

  141. }

  142. })

  143. }

  144.  
 
  1. //行数据转化demo

  2. function genderDel(value, row, index) {

  3. /**

  4. * 替换delete数据为文字

  5. * @param {string} value 选值

  6. * @param {object} row 行数据

  7. * @param {number} index 行索引

  8. * @return {string} 返回状态或"-"

  9. */

  10. if (value == null || value == undefined) {

  11. return "-";

  12. } else if (value == 1) {

  13. return "已删除";

  14. } else if (value == 0) {

  15. return "正常";

  16. }

  17. }

  18. //return还可以return字符串拼接

  19. function genderOpt() {

  20. /**

  21. * 自定义列内容

  22. */

  23. return [

  24. '<a class="trbtn-edit" href="javascript:void(0)" title="编辑">',

  25. '<i class="icon icon-pencil"></i>',

  26. '</a> ',

  27. '<a class="trbtn-remove" href="javascript:void(0)" title="删除">',

  28. '<i class="icon icon-trash"></i>',

  29. '</a>'

  30. ].join('');

  31. }

  32. //操作事件建议卸载内部,防止第一次点击操作不生效

  33. window.operateEvents = {

  34. /**

  35. * 注册操作按钮事件

  36. */

  37. 'click .trbtn-edit': function (e, value, row, index) {

  38. editData(row);

  39. },

  40. 'click .trbtn-remove': function (e, value, row, index) {

  41. delData(row.custNo);

  42. }

  43. };

  44.  
  45. function queryParams(params) {

  46. /**

  47. * 查询条件与分页数据

  48. * @return {object} 返回参数对象

  49. */

  50. //排序方式

  51. params.order = "modify_time desc";

  52. //第几页:指定跳转

  53. params.nowPage = this.pageNumber;

  54. //name

  55. params.custName = $("#search-name").val();

  56. //工具栏 参数

  57. console.log("查询条件");

  58. console.log(params);

  59. return params;

  60. }

 
  1. function refresh() {

  2. /**

  3. * 刷新表格数据

  4. */

  5. $table.bootstrapTable('refresh');

//$table.bootstrapTable('refresh'.{url:""});//刷新时调用接口防止表格无限销毁重铸时出现英文
}

 

 
  1. $("#btn-query").on("click", function () {

  2. /** * 查询 */

  3. refresh();

  4. })

  5. $("#btn-add").on("click", function () {

  6. console.log("新增页面");

  7. });

  8.  
  9. function editData(row) {//row为表格内一行的数据传值

  10.     console.log("修改页面")

  11. }

 
 
  1. function delData(strData) {

  2. /**

  3. * 删除 单行or多行

  4. * @param {string} strData 单行选中 数据

  5. * @param {object} strData 多行中行 数组

  6. */

  7. //多条数据转换

  8. if (typeof strData == "object") {

  9. strData = strData.join();

  10. }

  11.  
  12. //确认操作

  13. if(confirm('确定要删除用户编号为' + strData + '数据?') {

  14. /**

  15. * callback

  16. * @param {boolean} result:true>= OK, false>= Cancel

  17. */

  18. if (!result) {

  19. console.log("Cancel");

  20. return;

  21. }

  22. console.log("OK");

  23. console.log("删除数据");

  24. //组织数据-转换

  25. var sendData = {param:strData};

  26. console.log(sendData);

  27. $.ajax({

  28. url: 'user/deleteTest',

  29. method: 'POST',

  30. contentType: "application/x-www-form-urlencoded",

  31. data: sendData,

  32. //阻止深度序列化,向后台传送数组

  33. traditional: true,

  34. async : false,//这里同步,请按实际需求设置

  35. //成功

  36. success: function (msg) {

  37. if (msg.success) {//操作成功

  38. /**

  39. * callback获取回调数据

  40. * @param {object} msg 回调对象

  41. * @param {object} msg.obj 单行选中 数据

  42. * @param {object} msg.objects 多行中行 数组

  43. */

  44. alert("删除成功");

  45. console.log(msg);

  46. //刷新表格

  47. refresh();

  48. } else {

  49. alert(msg.message);//操作失败

  50. }

  51. },

  52. //请求错误

  53. error: function () {

  54. alert("请求错误");

  55. }

  56. })

  57. });

  58. }

  59.  
  60. $("#btn-del").on("click", function () {

  61. /**

  62. * 多行删除

  63. */

  64. var checkDatas = $table.bootstrapTable('getSelections');

  65. console.log(checkDatas);

  66. if (checkDatas.length < 1) {

  67. alert("请先选择一条或多条数据");

  68. } else {

  69. var uNo = [];

  70. for (var i = 0; i < checkDatas.length; i++) {

  71. uNo.push(checkDatas[i].custNo);

  72. }

  73. console.log(uNo);

  74. delData(uNo);

  75. }

  76. });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值