最近接觸一個NB插件,Bootstrap table?沒做過前端的表示對table的印象還只停留在html的table標簽那一套,用過bootstrap table之后不得不說真是牛X。
構造方式
1 、HTML
ID
用戶名
真實姓名
座機
手機
用戶類型
操作
12345678910111213141516171819202122232425262728292 、 js構造:
(function() {
$('#tablelist').bootstrapTable({
url: "${ctxAdmin}/user/userData?orgId=${orgId}",
search: true, //是否顯示搜索框功能
pagination: true, //是否分頁
showRefresh: true, //是否顯示刷新功能
showToggle: true,
showColumns: true,
iconSize: 'outline',
// toolbar: '#exampleTableEventsToolbar', 可以在table上方顯示的一條工具欄,
icons: {
refresh: 'glyphicon-repeat',
toggle: 'glyphicon-list-alt',
columns: 'glyphicon-list'
}
});
12345678910111213141516結合官網上展示的Table options,Column options,Events,Methods可以完成很多功能。上面的data-formatter ,data-events就是Column options中的選項 。
data-formatter 和 data-events
要實現如下效果,用上面兩個option配合使用即可,一個定義格式,一個定義點擊的操作。?
直接上js代碼
//value: 所在collumn的當前顯示值,
//row:整個行的數據 ,對象化,可通過.獲取
//表格-操作 - 格式化
function actionFormatter(value, row, index) {
return '修改 ' + '刪除';
}
//表格 - 操作 - 事件
window.actionEvents = {
'click .mod': function(e, value, row, index) {
//修改操作
},
'click .delete' : function(e, value, row, index) {
//刪除操作
}
}
123456789101112131415服務器分頁/客戶端分頁的轉換,table刷新
bootstrap默認是客戶端分頁 ,可通過html標簽
data-side-pagination:"client"
1或者js中的
sidePagination: 'server'
1
指定。注意,這兩種后臺傳過來的json數據格式也不一樣?
client : 正常的json array格式 [{},{},{}]?
server: {“total”:0,”rows”:[]} 其中total表示查詢的所有數據條數,后面的rows是指當前頁面展示的數據量。
有事需要根據情況改變分頁方式,就要用到Methods中的?
‘refreshOptions’ //設置更新時候的options?
‘refresh’ //設置更新時的 url ,query(往后臺傳參數)
$("#tablelist").bootstrapTable('refreshOptions', {
sidePagination: 'client' //改為客戶端分頁
});
$("#tablelist").bootstrapTable('refresh', {
url: "${ctxAdmin}/user/getsearchuserinfo", //重設數據來源
query: {username: $('#sea-username').val(),realname: $("#sea-realname").val(),mobile: $("#sea-mobile").val()}//傳到后臺的參數
});