1. 程式人生 > >bootstrap-table的合併單元格以及部分回掉函式

bootstrap-table的合併單元格以及部分回掉函式

--------------------- 
作者:導哥 
來源:CSDN 
原文:https://blog.csdn.net/jingtianyiyi/article/details/76208880 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

1.宣告mergeCells函式 

/**
 * 合併單元格
 * @param data  原始資料(在服務端完成排序)
 * @param fieldName 合併屬性名稱
 * @param colspan   合併列
 * @param target    目標表格物件
 */
function mergeCells(data,fieldName,colspan,target){
    //宣告一個map計算相同屬性值在data物件出現的次數和
    var sortMap = {};
    for(var i = 0 ; i < data.length ; i++){
        for(var prop in data[i]){
            if(prop == fieldName){
                var key = data[i][prop]
                if(sortMap.hasOwnProperty(key)){
                    sortMap[key] = sortMap[key] * 1 + 1;
                } else {
                    sortMap[key] = 1;
                }
                break;
            } 
        }
    }
    for(var prop in sortMap){
        console.log(prop,sortMap[prop])
    }
    var index = 0;
    for(var prop in sortMap){
        var count = sortMap[prop] * 1;
        $(target).bootstrapTable('mergeCells',{index:index, field:fieldName, colspan: colspan, rowspan: count});   
        index += count;
    }
}

2.在bootstrapTable的onLoadSuccess函式中載入執行:

onLoadSuccess : function(data) {                                
                var data = $('#table').bootstrapTable('getData', true);
                //合併單元格
                mergeCells(data, "companyTypeName", 1, $('#table'));

},

3.顯示效果

這裡寫圖片描述 

4.boostrap-table部分的回撥函式:

原文:http://www.cnblogs.com/wufanJY/p/7457432.html

分析事件及回撥函式

bootstrap-table事件基本以on繫結,bootstrap-table的事件都有.bs.table字尾 bs即bootstrap 顯然.bs.table是申明boostrap-table。

click-row:行點選事件,callback獲取4個引數 : e 事件物件 , row 當前行資料物件 , ele 當前單元格物件 , field 當前單元格的field值。(row是資料物件,ele是DOM物件)

dbl-click-row:行雙擊事件,callback獲取4個引數 : e 事件物件 , row 當前行資料物件 , ele 當前單元格物件 , field 當前單元格的field值。(row是資料物件,ele是DOM物件)

check:單個checkbox選中事件,callback獲取3個引數 : e 事件物件 , row 當前行資料物件 , ele 當前單元格物件。(row是資料物件,ele是DOM物件)

uncheck:單個checkbox取消選中事件,callback獲取3個引數 : e 事件物件 , row 當前行資料物件 , ele 當前單元格物件。(row是資料物件,ele是DOM物件)

check-all:全選checkbox事件,callback獲取2個引數 :e 事件物件 ,dataArr 選中行資料物件集合(dataArr的物件是資料物件)

uncheck-all:全選checkbox取消事件,callback獲取2個引數 :e 事件物件 ,dataArr 選中行資料物件集合(dataArr的物件是資料物件)

sort:列排序事件,callback獲取3個引數 : e 事件物件 , field 當前列的field值 , order 當前列是升序還是降序(enum值,desc , asc)。

load-success:資料載入成功事件,callback獲取2個引數:e 事件物件 , data 成功載入的資料物件集合。(dataArr的物件是資料物件)

load-error:資料載入失敗事件,callback獲取2個引數:e 事件物件 , status 失敗狀態碼。

column-switch:顯示隱藏列選擇事件,callback獲取3個引數:e 事件物件 ,field 當前列的field值 ,checked 是否勾選(bool值)。

page-change:翻頁事件,callback獲取3個引數 : e 事件物件 ,number 當前頁碼(不是下標,是頁碼) ,size 當前頁資料條數。

search:搜尋事件,callback獲取2個引數 : e 事件物件 ,text 搜尋框輸入內容。

這個demo包含幾乎所有bootstrap-table的事件。

示例程式碼:

$(function(){
            /*初始化表格*/
            $("#goods").bootstrapTable({
                data: data
            });
            /*載入事件*/
            $("#goods")
            .on(‘click-row.bs.table‘, function (e, row, ele,field) {
                $("#eventInfo").text(‘點選行事件 當前商品名:‘+ row.goodsName 
                                    + ‘,價格:‘ + row.price 
                                    + ‘,效期:‘ + row.date
                                    + ‘當前點選單元格field值為:‘ + field);
            })
}