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...