1.新的工作接触到了bootstrap-table,用于后台管理系统的开发,项目用到的东西比较多,前端接触的主要是thymeleaf模板和bootstrap-table加上lay-ui;
2.bootstrap-table主要遇到的问题:项目通过二次封装使用这个插件,一开始是有点摸不着头脑,因为没有文档,只能看着bt的文档对照着写。接下来说一说这几天遇到的问题,还有怎么解决的;
2-1:表格初始化数据的问题。页面是用layuiAdmin的iframe版,bt数据通过url请求回来,设置各个表头的数据,然后在初始化。
2-2:需要在表格的操作列绑定事件,看代码;主要是怎么传多个参数的问题,然后发现这样才行;(主要是\‘’ ‘\’ 这个写法,其他和单个是一样的 )
{ title: '操作', align: "center", formatter: function(value, row, index) { var actions = []; actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="checkSingle(\'' + row.waybillId + '\',\''+row.unloadCost+'\',\''+row.transportCost + '\')"><i class="fa fa-edit"></i>支付运费</a> '); return actions.join(''); }
2-3:bt这个表格数据是后端传过来的,所以很多操作都是ajax请求,比如删除,编辑。框架也有二次封装;我遇到的问题就是前端来操作移除,因为这个界面不需要传表格数个数据给后端,而且还要统计表格的数据。解决办法其实也简单,就是要获取url请求回来的所有数据就可以操作了;看代码
//这个是框架封装了首次加载页面会体骄傲一个form表单,所以页面所需的数据是从上个页面传回来的ids数组参数请求回来的 <form id="menu-form" > <input type="hidden" name="ids" id="ids" value=""/> </form> <script th:inline="javascript"> var ids =[[${ids}]]; $('#ids').val(ids); //页面请求回来的ids数组,赋值给input的value值 </script> //该选项是bt的自带选项,当表格数据加载完成时就会触发的 onLoadSuccess:function(data){ console.log(data);//这个就是表格全部的数据 //这里你可以写js逻辑了 }, //然后就是操作的按钮事件了 //移除按钮 function remove(id){ $.modal.confirm('确定删除该条信息吗?',function () { ids.splice($.inArray(id,ids),1); $('#ids').val(ids); $.btTable.bootstrapTable('refresh');//每次移除都会刷新表格,传新的ids重新请求数据 }) };
2-4:续上一个问题,上个问题是单个移除的,其实批量移除也是一样的,bt或者勾选的数据rows:
var rows = $.btTable.bootstrapTable('getSelections');To be continue...