中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

bootstrap table插件的分頁與checkbox使用詳解

發布時間:2020-08-29 03:33:04 來源:腳本之家 閱讀:344 作者:心似一片青苔 欄目:web開發

今天需要實現這樣一個功能,有checkbox列表可供選擇,要選擇不分頁之間的行并保存

最終實現的功能如圖:(圖片來自網上)

bootstrap table插件的分頁與checkbox使用詳解

具體實現

首先,來看具體的代碼,這里只截取實現功能所需代碼

  var selectionIds =[],selectionNames=[];
  var curd = {
    init:function(){
      this._getCheckParam();
    },

    /**
     * 初始化
     * @private
     */

  /**
   * 表格操作
   */
  //表格分頁之前處理多選框數據
  _responseHandler:function()(res) {
    $.each(res.rows, function (i, row) {
      row.checkStatus = $.inArray(row.id, selectionIds) != -1; //判斷當前行的數據id是否存在與選中的數組,存在則將多選框狀態變為true
    });
    return res;
  },
    _list:function(){
      var _this = this
      var settings = {
        url:Path.searchUrl,
        method:'GET',
        responseHandler:_this.responseHandler, //在渲染頁面數據     之前執行的方法
        height:Path.tbheight
      };
      bsTable.initTable("#boostrapTable",settings);
      // 其它的boostrapTable參數已經封裝在bsTable里面了,這里就不貼出來了
    },
    /**
     * 獲取選中ID
     * @returns {*}
     * @private
     */
    _getIdSelections:function() {
        // 用map進行過濾
        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;
      };
      //取消選中事件操作數組
      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
      // 想返回什么字段就換成什么
    });
  }

當然,如果需要對選出的數據有限制篩選,用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],返回所有數值都大于2的一個數組

相關討論

如果想了解更多細節,可以看看GitHub上的issue

如何保存用戶的復選框問題

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岑溪市| 丰都县| 宁陵县| 广宗县| 友谊县| 定西市| 长顺县| 当涂县| 富平县| 武川县| 南华县| 呼和浩特市| 资溪县| 丰原市| 昌平区| 平江县| 广元市| 临城县| 乌拉特前旗| 丹巴县| 贵州省| 苍溪县| 汕尾市| 墨玉县| 武功县| 黄平县| 赣州市| 鹰潭市| 武强县| 特克斯县| 玛纳斯县| 道孚县| 枝江市| 曲沃县| 类乌齐县| 丘北县| 肥城市| 西盟| 福安市| 玛曲县| 神池县|