virtualScroll.html 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <!DOCTYPE html>
  2. <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
  3. <head>
  4. <th:block th:include="include :: header('表格虚拟滚动')" />
  5. </head>
  6. <body class="gray-bg">
  7. <div class="container-div">
  8. <div class="btn-group-sm" id="toolbar" role="group">
  9. <a class="btn btn-success" onclick="loadRows()">
  10. <i class="fa fa-plus"></i> 加载10000行数据
  11. </a>
  12. <a class="btn btn-info" onclick="appendRows()">
  13. <i class="fa fa-edit"></i> 追加10000行数据
  14. </a>
  15. &nbsp;&nbsp;<span id="total" class="badge badge-success"></span>
  16. </div>
  17. <div class="row">
  18. <div class="col-sm-12 select-table table-striped">
  19. <table id="bootstrap-table"></table>
  20. </div>
  21. </div>
  22. </div>
  23. <div th:include="include :: footer"></div>
  24. <script>
  25. var total = 0
  26. $(function() {
  27. var options = {
  28. data: getData(20),
  29. height: 400,
  30. sidePagination: "client",
  31. pagination: false,
  32. showSearch: false,
  33. virtualScroll: true,
  34. columns: [{
  35. field : 'userId',
  36. title : '用户ID'
  37. },
  38. {
  39. field : 'userCode',
  40. title : '用户编号'
  41. },
  42. {
  43. field : 'userName',
  44. title : '用户姓名'
  45. },
  46. {
  47. field : 'userPhone',
  48. title : '用户手机'
  49. },
  50. {
  51. field : 'userEmail',
  52. title : '用户邮箱'
  53. },
  54. {
  55. field : 'userBalance',
  56. title : '用户余额'
  57. }]
  58. };
  59. $.table.init(options);
  60. });
  61. function getData(number, isAppend) {
  62. if (!isAppend) {
  63. total = 0
  64. }
  65. var data = []
  66. for (var i = total; i < total + number; i++) {
  67. var randomId = 100 + ~~ (Math.random() * 100);
  68. data.push({
  69. userId: i + 1,
  70. userCode: 2000000 + randomId,
  71. userName: '测试' + randomId,
  72. userPhone: '1588888888',
  73. userEmail: 'ry1@qq.com',
  74. userBalance: 10 + randomId,
  75. })
  76. }
  77. if (isAppend) {
  78. total += number
  79. } else {
  80. total = number
  81. }
  82. $('#total').text(total);
  83. return data;
  84. }
  85. function loadRows() {
  86. $('#bootstrap-table').bootstrapTable('load', getData(10000))
  87. }
  88. function appendRows() {
  89. $('#bootstrap-table').bootstrapTable('append', getData(10000, true))
  90. }
  91. </script>
  92. </body>
  93. </html>