bootstrap table插件的分頁與checkbox使用詳解
今天需要實現(xiàn)這樣一個功能,有checkbox列表可供選擇,要選擇不分頁之間的行并保存
最終實現(xiàn)的功能如圖:(圖片來自網(wǎng)上)

具體實現(xiàn)
首先,來看具體的代碼,這里只截取實現(xiàn)功能所需代碼
var selectionIds =[],selectionNames=[];
var curd = {
init:function(){
this._getCheckParam();
},
/**
* 初始化
* @private
*/
/**
* 表格操作
*/
//表格分頁之前處理多選框數(shù)據(jù)
_responseHandler:function()(res) {
$.each(res.rows, function (i, row) {
row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判斷當(dāng)前行的數(shù)據(jù)id是否存在與選中的數(shù)組,存在則將多選框狀態(tài)變?yōu)閠rue
});
return res;
},
_list:function(){
var _this = this
var settings = {
url:Path.searchUrl,
method:'GET',
responseHandler:_this.responseHandler, //在渲染頁面數(shù)據(jù) 之前執(zhí)行的方法
height:Path.tbheight
};
bsTable.initTable("#boostrapTable",settings);
// 其它的boostrapTable參數(shù)已經(jīng)封裝在bsTable里面了,這里就不貼出來了
},
/**
* 獲取選中ID
* @returns {*}
* @private
*/
_getIdSelections:function() {
// 用map進(jìn)行過濾
return $.map($('#bootstrapTable').bootstrapTable('getSelections'), function (row) {
return row.id
});
},
/**
* 獲取選中對象并顯示
* @private
*/
_getCheckParam:function(){
var union = function(array,ids){
$.each(ids, function (i, id) {
if($.inArray(id,array)==-1){
array[array.length] = id;
}
});
return array;
};
//取消選中事件操作數(shù)組
var difference = function(array,ids){
$.each(ids, function (i, id) {
var index = $.inArray(id,array);
if(index!=-1){
array.splice(index, 1);
}
});
return array;
};
var _ = {"union":union,"difference":difference};
var $table=$('#bootstrapTable');
//綁定選中事件、取消事件、全部選中、全部取消
$table.on('check.bs.table check-all.bs.table uncheck.bs.table uncheck-all.bs.table', function (e, rows) {
var ids = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.id;
});
var names = $.map(!$.isArray(rows) ? [rows] : rows, function (row) {
return row.name;
});
func = $.inArray(e.type, ['check', 'check-all']) > -1 ? 'union' : 'difference';
selectionIds = _[func](selectionIds, ids);
selectionNames =_[func](selectionNames,names);
});
}
};
return curd;
});
比較常用的技巧
使用boostrapTable時候,選擇表格的行,返回的rows有很多,這時候需要過濾出我們需要的字段,可以用
function getIdSelections() {
return $.map($table.bootstrapTable('getSelections'), function (row) {
return row.id
// 想返回什么字段就換成什么
});
}
當(dāng)然,如果需要對選出的數(shù)據(jù)有限制篩選,用filter過濾也不錯
var arr = [1,2,3,4,5,4,3,2,1];
var filterResult = arr.filter(function(item,index,array){
return (item>2);
});
console.log(filterResult);
//[3,4,5,4,3],返回所有數(shù)值都大于2的一個數(shù)組
相關(guān)討論
如果想了解更多細(xì)節(jié),可以看看GitHub上的issue
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- bootstrap table表格插件之服務(wù)器端分頁實例代碼
- bootstrap table 服務(wù)器端分頁例子分享
- bootstrap-table后端分頁功能完整實例
- Bootstrap table分頁問題匯總
- 第一次動手實現(xiàn)bootstrap table分頁效果
- BootStrap中Table分頁插件使用詳解
- BootStrap Table前臺和后臺分頁對JSON格式的要求
- bootstrap table分頁模板和獲取表中的ID方法
- 使用bootstraptable插件實現(xiàn)表格記錄的查詢、分頁、排序操作
- bootstrap-table實現(xiàn)服務(wù)器分頁的示例 (spring 后臺)
- BootStrap Table后臺分頁時前臺刪除最后一頁所有數(shù)據(jù)refresh刷新后無數(shù)據(jù)問題
- Bootstrap table 服務(wù)器端分頁功能實現(xiàn)方法示例
相關(guān)文章
Weex開發(fā)之WEEX-EROS開發(fā)踩坑(小結(jié))
這篇文章主要介紹了Weex開發(fā)之WEEX-EROS開發(fā)踩坑(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
javascript實現(xiàn)div浮動在網(wǎng)頁最頂上并帶關(guān)閉按鈕效果實例
我們有時會看到有些網(wǎng)站最頂部一直會跟著我們滾動而滾動了,這種方法其實很簡單,下面我來給大推薦一個javascript實現(xiàn)div浮動在網(wǎng)頁最頂上并帶關(guān)閉按鈕效果2013-08-08
JS 動態(tài)加載js文件和css文件 同步/異步的兩種簡單方式
下面小編就為大家?guī)硪黄狫S 動態(tài)加載js文件和css文件 同步/異步的兩種簡單方式。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09
JavaScript的設(shè)計模式經(jīng)典之代理模式
代理模式的定義是把對一個對象的訪問, 交給另一個代理對象來操作。接下來通過本文給大家介紹JavaScript的設(shè)計模式之代理模式,感興趣的朋友一起學(xué)習(xí)吧2016-02-02
JavaScript極簡入門教程(二):對象和函數(shù)
這篇文章主要介紹了JavaScript極簡入門教程(二):對象和函數(shù),本文講解了對象基礎(chǔ)知識、函數(shù)基礎(chǔ)知識、函數(shù)調(diào)用、異常、繼承等內(nèi)容,需要的朋友可以參考下2014-10-10

