java +bootstrap table 完整例子

需求:现在常用的table 插件很多, 比如 jquey datatables ,不过操作挺 麻烦, 看到推荐的bootstrap 自带的 table,就用到项目来,先看效果:

功能包括常用的, 添加, 删除, 批量删除, 查询, 修改。

添加:

==================

Java的框架, 是 springboot

先看下后台代码:

aside.html 左侧菜单:

html 代码:

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4   <meta charset="utf-8"/>
  5   <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
  6   <title>全民发布</title>
  7   <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"/>
  8   <link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css"/>
  9     <link rel="stylesheet" href="/bootstrap/css/bootstrap-table.css"/>
 10       <link rel="stylesheet" href="/bootstrap/css/bootstrap-editable.css"/>
 11   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css"/>
 12   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css"/>
 13   <link rel="stylesheet" href="/plugins/datatables/dataTables.bootstrap.css"/>
 14   <link rel="stylesheet" href="/dist/css/AdminLTE.min.css"/>
 15   <link rel="stylesheet" href="/dist/css/skins/_all-skins.min.css"/>
 16
 17 </head>
 18 <body class="hold-transition skin-blue sidebar-mini">
 19  <div th:replace="fragment/header :: header"></div>
 20    <div th:replace="fragment/aside :: aside"></div>
 21 <div class="wrapper">
 22
 23   <div class="content-wrapper">
 24
 25     <section class="content-header">
 26       <h1>
 27                      客户管理
 28         <small>客户列表</small>
 29       </h1>
 30       <ol class="breadcrumb">
 31         <li><a href="#"><i class="fa fa-dashboard"></i> 主页</a></li>
 32         <li class="active">首页</li>
 33       </ol>
 34     </section>
 35     <section class="content">
 36       <div class="row">
 37          <div class="panel-body" style="padding-bottom:0px;">
 38         <div id="toolbar" class="btn-group">
 39             <button id="btn_add" type="button" class="btn  btn-success" onclick="btn_add()">
 40                 <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
 41             </button>
 42            <button id="remove" class="btn btn-danger" >
 43             <i class="glyphicon glyphicon-remove"></i> 删除
 44            </button>
 45         </div>
 46            <div class="box">
 47             <!-- /.box-header -->
 48             <div class="box-body">
 49         <table id="tb_customer" data-response-handler="responseHandler">
 50         </table>
 51          </div>
 52         </div>
 53     </div>
 54         <!-- /.col -->
 55       </div>
 56       <!-- /.row -->
 57     </section>
 58     <!-- /.content -->
 59   </div>
 60 <div th:replace="customer/customer-form :: customer-form"></div>
 61
 62 </div>
 63 <!-- ./wrapper -->
 64
 65 <!-- jQuery 2.2.3 -->
 66 <script src="/plugins/jQuery/jquery-2.2.3.min.js"></script>
 67 <!-- Bootstrap 3.3.6 -->
 68 <script src="/bootstrap/js/bootstrap.min.js"></script>
 69 <script src="/bootstrap/js/bootstrap-table.js"></script>
 70 <script src="/bootstrap/js/bootstrap-table-zh-CN.js"></script>
 71 <script src="/bootstrap/js/bootstrap-table-editable.js"></script>
 72 <script src="/bootstrap/js/bootstrap-editable.js"></script>
 73 <!-- DataTables -->
 74 <script src="/plugins/datatables/jquery.dataTables.min.js"></script>
 75 <script src="/plugins/datatables/dataTables.bootstrap.min.js"></script>
 76 <!-- SlimScroll -->
 77 <script src="/plugins/slimScroll/jquery.slimscroll.min.js"></script>
 78 <!-- FastClick -->
 79 <script src="/plugins/fastclick/fastclick.js"></script>
 80 <!-- AdminLTE App -->
 81 <script src="/dist/js/app.min.js"></script>
 82 <!-- AdminLTE for demo purposes -->
 83 <script src="/dist/js/demo.js"></script>
 84 <script type="text/javascript" src="/js/jquery.cookie.js"></script>
 85 <!-- page script -->
 86 <script>
 87
 88 selections = [];
 89 $(function () {
 90     //1.初始化Table
 91     var oTable = new TableInit();
 92     oTable.Init();
 93
 94     //2.初始化Button的点击事件
 95     var oButtonInit = new ButtonInit();
 96     oButtonInit.Init();
 97
 98 });
 99
100
101
102 var TableInit = function () {
103     var oTableInit = new Object();
104     //初始化Table
105     oTableInit.Init = function () {
106         $(‘#tb_customer‘).bootstrapTable({
107             url: ‘/customer-data‘,         //请求后台的URL(*)
108             method: ‘get‘,                      //请求方式(*)
109             toolbar: ‘#toolbar‘,                //工具按钮用哪个容器
110             striped: true,                      //是否显示行间隔色
111             cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
112             pagination: true,                   //是否显示分页(*)
113             sortable: false,                     //是否启用排序
114             sortOrder: "asc",                   //排序方式
115             queryParams: oTableInit.queryParams,//传递参数(*)
116             sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)
117             pageNumber:1,                       //初始化加载第一页,默认第一页
118             pageSize: 10,                       //每页的记录行数(*)
119             pageList: [10],        //可供选择的每页的行数(*)
120             search: true,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
121             strictSearch: true,
122             showColumns: true,                  //是否显示所有的列
123             showRefresh: true,                  //是否显示刷新按钮
124             minimumCountColumns: 2,             //最少允许的列数
125             clickToSelect: true,                //是否启用点击选中行
126             height: 500,                        //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
127             uniqueId: "id",                     //每一行的唯一标识,一般为主键列
128             showToggle:true,                    //是否显示详细视图和列表视图的切换按钮
129             cardView: false,                    //是否显示详细视图
130             detailView: false,                   //是否显示父子表onEditableSave
131             columns: [{
132                 checkbox: true
133             }, {
134                 field: ‘uid‘,
135                 title: ‘客户id‘
136
137             }, {
138                 field: ‘mobile‘,
139                 title: ‘联系方式‘
140
141             }, {
142                 field: ‘doubleSumMoney‘,
143                 title: ‘总充值金额(元)‘
144
145             }, {
146                 field: ‘createTimeStr‘,
147                 title: ‘创建时间‘
148
149             }
150             , {
151                 field: ‘updateTimeStr‘,
152                 title: ‘修改时间‘
153
154             }
155             , {
156                 field: ‘operate‘,
157                 title: ‘操作‘,
158                 align: ‘center‘,
159                 events: operateEvents,
160                 formatter: operateFormatter
161             }
162
163
164             ],
165             onEditableSave: function (field, row, oldValue, $el) {
166              $.ajax({
167                  type: "post",
168                  url: "/edit",
169                  data: { strJson: JSON.stringify(row) },
170                  success: function (data, status) {
171                      if (status == "success") {
172                          alert("编辑成功");
173                      }
174                  },
175                  error: function () {
176                      alert("Error");
177                  },
178                  complete: function () {
179
180                  }
181
182              });
183          }
184         });
185     };
186
187
188
189     //得到查询的参数
190   oTableInit.queryParams = function (params) {
191         var temp = {   //这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的
192             limit: params.limit,   //页面大小
193             offset: params.offset,  //页码
194             search:params.search
195         };
196         return temp;
197     };
198     return oTableInit;
199 };
200
201
202 var ButtonInit = function () {
203     var oInit = new Object();
204     var postdata = {};
205
206     oInit.Init = function () {
207         //初始化页面上面的按钮事件
208     };
209
210     return oInit;
211 };
212
213 function btn_add(){
214       $("#myModalLabel").text("添加客户");
215        $(‘#myModal‘).modal();
216
217 }
218
219 function operateFormatter(value, row, index) {
220     return [
221          ‘<a class="like" href="javascript:void(0)" title="Like">‘,
222             ‘<i class="fa fa-pencil-square-o"></i>‘,
223             ‘</a>  ‘,
224         ‘<a class="remove" href="javascript:void(0)" title="Remove">‘,
225         ‘<i class="glyphicon glyphicon-remove"></i>‘,
226         ‘</a>‘
227     ].join(‘‘);
228 }
229
230 window.operateEvents = {
231         ‘click .like‘: function (e, value, row, index) {
232         $("#myModalLabel").text("编辑客户");
233         $("#mobile").attr("value",row.mobile);
234           $("#money").attr("value",row.doubleSumMoney);
235           $("#id").attr("value",row.id);
236           $("#index").attr("value",index);
237             $(‘#myModal‘).modal();
238
239         },
240         ‘click .remove‘: function (e, value, row, index) {
241               $.ajax({
242                 type: "post",
243                 url: "/delete-customer",
244                 data: { strJson: row.id },
245                 success: function (data, status) {
246                     if (status == "success") {
247                         alert("删除成功");
248                     }
249                 },
250                 error: function () {
251                     alert("Error");
252                 },
253                 complete: function () {
254
255                 }
256
257             });
258             $(‘#tb_customer‘).bootstrapTable(‘remove‘, {
259                 field: ‘id‘,
260                 values: [row.id]
261             });
262
263         }
264     };
265     function save(){
266          $.ajax({
267             type: "post",
268             url: "/edit-cus",
269             data:$(‘#dataFrom‘).serialize(),
270             success: function (data, status) {
271                 if (status == "success") {
272                     $(‘#myModal‘).modal(‘hide‘);
273                     $(‘#tb_customer‘).bootstrapTable(‘refresh‘);
274
275                 }
276             },
277             error: function () {
278                 alert("Error");
279             },
280             complete: function () {
281
282             }
283
284         });
285
286
287     }
288
289     function getIdSelections() {
290         return $.map($(‘#tb_customer‘).bootstrapTable(‘getSelections‘), function (row) {
291             return row.id
292         });
293     }
294
295
296     function responseHandler(res) {
297         $.each(res.rows, function (i, row) {
298             row.state = $.inArray(row.id, selections) !== -1;
299         });
300         return res;
301     }
302     $(‘#remove‘).click(function () {
303         var ids = getIdSelections();
304         $(‘#tb_customer‘).bootstrapTable(‘remove‘, {
305             field: ‘id‘,
306             values: ids
307         });
308         $.ajax({
309             type: "post",
310             url: "/delete-customer",
311             data: { strJson: ids.toString() },
312             success: function (data, status) {
313                 if (status == "success") {
314                     alert("删除成功");
315                 }
316             },
317             error: function () {
318                 alert("Error");
319             },
320             complete: function () {
321
322             }
323
324         });
325         $(‘#tb_customer‘).bootstrapTable(‘refresh‘);
326     });
327
328 </script>
329 </body>
330 </html>

Java代码:

只要JSON 返回了rows , total ,数据就会展示在列表

时间: 2024-11-07 18:32:49

java +bootstrap table 完整例子的相关文章

Java 操作Hbase 完整例子

开发工具:Eclipse,三步1.新建一个项目2.把hbase安装下的lib的文件都拷贝进来3.把lib目录下jar文件都引入4.lib下的client-facing-thirdparty 目录下的jar也都引入看图 package com.yue; import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.;import org.apache.hadoop.hbase.client.; import j

Bootstrap Table Fixed Columns

最近在使用BootStrap 做项目前端,自然也用到了  Bootstrap Table. 推荐大家多去这个http://bootstrap-table.wenzhixin.net.cn/zh-cn/  网站看看,上面有很详细的介绍以及其他扩展功能 下面写下 Fixed Columns(固定列)的使用方法.附件下载地址:http://pan.baidu.com/s/1kUEQTPt 1.引用css文件,js文件(注意引用顺序) <link rel="stylesheet" hre

新的表格展示利器 Bootstrap Table Ⅱ

    上一篇文章介绍了Bootstrap Table的基本知识点和应用,本文针对上一篇文章中未解决的文件导出问题进行分析,同时介绍BootStrap Table的扩展功能,当行表格数据修改. 1.Bootstrap Bable 全部数据导出分析 在表格导出数据中,发现设置了分页参数,导出的数据仅为表格加载的分页参数数据,于是,针对这样的情况,通过设置分页参数的值,使表格可以加载更多的数据,可达到导出所有数据的功能需求.然而,在实际的实验中,发现此方案存在以下问题: 表格一次加载一千条数据时,网

C#调用存储过程简单完整例子

CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE [email protected] SET  @[email protected]@ROWCOUNTENDGO------------------------------------------------------------------------------------------存储过程调用如下:-

【转】java格式化输出 printf 例子

[转]java格式化输出 printf 例子 转自http://www.cnblogs.com/TankMa/archive/2011/08/20/2146913.html#undefined import java.util.Date; /** * 使用printf输出 */ /**关键技术点 * 使用java.io.PrintStream的printf方法实现C风格的输出 * printf 方法的第一个参数为输出的格式,第二个参数是可变长的,表示待输出的数据对象 */ public clas

在Chrome运行Bootstrap Table测试程序报错

在学习Flask的过程中,一直在寻找一个合适的前端框架,用了一段时间的EasyUI,觉得美观还有使用习惯不是很符合个人风格,就有意转向Bootstrap. 因为以开发管理系统为主,表格控件是影响我选择前端框非常重要的因素.Bootstrap自带的表格控件功能不是很丰富,在网上搜了一下,找到一个叫Bootstrap Table 的控件,基于MIT协议的开源控件. 下载建立相关目录,就按照官方例子写了一个简单的测试程序,代码如下: <!DOCTYPE html> <html>   &l

Bootstrap Table急速完美搭建后台管理系统

Bootstrap Table是基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分页,以及编辑.导出.过滤(扩展)等等的功能:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/ 现在做的一个app管理以及后台配置系统,需要针对不同的城市作相应的定制化的配置,对一些后台数据也做一些展示和操作,所以每一个模块基本都会有表格的展现形式,这样做的好处就是直观方便操作.对于用什么t

bootstrap table使用总结

使用bootstrap table可以很方便的开发后台表格,对数据进行异步更新,编辑.下面就来介绍一下bootstrap table的详细使用方法: 因为之前在官网也找了很久的教程,源码感觉隐藏的比较隐秘,其他扩展功能也很难找到,其实都在:http://issues.wenzhixin.net.cn/bootstrap-table/index.html这里面,点击上面的tab可以找到具体的功能实现(特别是extension和issues,之前以为issues不是教程,结果点进去才知道): 最简单

Bootstrap Table SpringMVC基本功能实现

首先是版本介绍 <前端>bootstrap.min.css 3.2.0,bootstrap.min.js 3.2.0,jquery 1.11.3,modal.js 3.2.0,bootstrap-table.js 1.3.0;<后台>Spring MVC 4.1.5 这里是前端代码 bootstrap-table.jsp 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu