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

发布时间 - 2026-01-11 02:28:06    点击率:

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

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

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


# bootstrap  # table  # 分页  # checkbox  # bootstrap table表格插件之服务器端分页实例代码  # bootstrap table 服务器端分页例子分享  # bootstrap-table后端分页功能完整实例  # Bootstrap table分页问题汇总  # 第一次动手实现bootstrap table分页效果  # BootStrap中Table分页插件使用详解  # BootStrap Table前台和后台分页对JSON格式的要求  # bootstrap table分页模板和获取表中的ID方法  # 使用bootstraptable插件实现表格记录的查询、分页、排序操作  # bootstrap-table实现服务器分页的示例 (spring 后台)  # BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题  # Bootstrap table 服务器端分页功能实现方法示例  # 多选  # 来了  # 有很多  # 就不  # 可以用  # 所需  # 这样一个  # 想了  # 如图  # 也不错  # 绑定  # 贴出  # 装在  # 大家多多  # 可供选择  # 是否存在  # 则将  # 复选框  # 并保存 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel事件监听器怎么写_Laravel Event和Listener使用教程  网页设计与网站制作内容,怎样注册网站?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  如何选择PHP开源工具快速搭建网站?  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  Laravel怎么为数据库表字段添加索引以优化查询  ,在苏州找工作,上哪个网站比较好?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel如何实现用户密码重置功能?(完整流程代码)  图册素材网站设计制作软件,图册的导出方式有几种?  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel集合Collection怎么用_Laravel集合常用函数详解  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel PHP版本要求一览_Laravel各版本环境要求对照  如何用AI帮你把自己的生活经历写成一个有趣的故事?  如何在Tomcat中配置并部署网站项目?  香港服务器租用费用高吗?如何避免常见误区?  音乐网站服务器如何优化API响应速度?  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  利用vue写todolist单页应用  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  如何快速搭建自助建站会员专属系统?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  如何制作一个表白网站视频,关于勇敢表白的小标题?  南京网站制作费用,南京远驱官方网站?  Android实现代码画虚线边框背景效果  如何挑选高效建站主机与优质域名?  如何快速生成凡客建站的专业级图册?  怎么用AI帮你为初创公司进行市场定位分析?  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  Laravel怎么判断请求类型_Laravel Request isMethod用法  创业网站制作流程,创业网站可靠吗?  如何在Ubuntu系统下快速搭建WordPress个人网站?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  如何在宝塔面板中修改默认建站目录?  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何在云主机快速搭建网站站点?  如何用搬瓦工VPS快速搭建个人网站?  百度浏览器如何管理插件 百度浏览器插件管理方法  移动端脚本框架Hammer.js