bootstrap table插件的分页与checkbox使用详解

 更新时间:2017年07月23日 10:01:02   作者:心似一片青苔  
这篇文章主要为大家详细介绍了bootstrap table插件的分页与checkbox使用详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

今天需要实现这样一个功能,有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

如何保存用户的复选框问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JS中移除非数字最多保留一位小数

    JS中移除非数字最多保留一位小数

    这篇文章主要介绍了JS中移除非数字最多保留一位小数的实现代码,文章给大家提到了js处理数字保留2位小数,强制保留2位小数不够补上.00的完整代码,感兴趣的朋友一起看看吧
    2018-05-05
  • 浅谈JavaScript对象的创建方式

    浅谈JavaScript对象的创建方式

    下面小编就为大家带来一篇浅谈JavaScript对象的创建方式。小编觉得挺不错的,现在就分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-06-06
  • JS编程小常识很有用

    JS编程小常识很有用

    JS是一门计算机编程语言,是一门动态语言也称为脚本语言,是解析型编程语言。需要了解跟多
    2012-11-11
  • Weex开发之WEEX-EROS开发踩坑(小结)

    Weex开发之WEEX-EROS开发踩坑(小结)

    这篇文章主要介绍了Weex开发之WEEX-EROS开发踩坑(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • javascript实现div浮动在网页最顶上并带关闭按钮效果实例

    javascript实现div浮动在网页最顶上并带关闭按钮效果实例

    我们有时会看到有些网站最顶部一直会跟着我们滚动而滚动了,这种方法其实很简单,下面我来给大推荐一个javascript实现div浮动在网页最顶上并带关闭按钮效果
    2013-08-08
  • JS 动态加载js文件和css文件 同步/异步的两种简单方式

    JS 动态加载js文件和css文件 同步/异步的两种简单方式

    下面小编就为大家带来一篇JS 动态加载js文件和css文件 同步/异步的两种简单方式。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 如jQuery般易用的api风格代码分享

    如jQuery般易用的api风格代码分享

    最近几天闲来无事,随便写了点代码玩了玩。个人觉得,应该把编码当做一种乐趣,要不然会觉得很累...
    2011-01-01
  • JavaScript的设计模式经典之代理模式

    JavaScript的设计模式经典之代理模式

    代理模式的定义是把对一个对象的访问, 交给另一个代理对象来操作。接下来通过本文给大家介绍JavaScript的设计模式之代理模式,感兴趣的朋友一起学习吧
    2016-02-02
  • JavaScript极简入门教程(二):对象和函数

    JavaScript极简入门教程(二):对象和函数

    这篇文章主要介绍了JavaScript极简入门教程(二):对象和函数,本文讲解了对象基础知识、函数基础知识、函数调用、异常、继承等内容,需要的朋友可以参考下
    2014-10-10
  • HTML上传控件取消选择

    HTML上传控件取消选择

    由于<input type="file">的value属性石只读的,所以要取消选择只能通过其他途径,此处有2种方法
    2013-03-03

最新评论