bootstrap table复选框选多页勾选

2023-11-16

bootstrap table复选框选多页勾选

在项目中发现,bootstrap table的复选框选中后,翻页操作会导致上一页选中的丢失,api中的 bootstrapTable(‘getSelections’); 只能拿到当前页的复选框。

js - 表格初始化

/**
 * 初始化表格布局和数据加载
 */
function initTable() {
	$('#table').bootstrapTable({
		locale: sessionStorage.getItem("userLanguage"),
		height: window.innerHeight,
        toolbar: "form",
		method: 'post',
	  	dataType: "json",
	  	striped: true,
		pagination: true,
		clickToSelect: true,
		maintainSelected : true,    //如果是客户端分页,这个设为 true 翻页后已经选中的复选框不会丢失
		sidePagination: "server",
		pageNumber: 1,
		pageSize: 20,
		pageList: [20, 50, 100],
		url: "/page/aliyun",
		//responseHandler:responseHandler, //在渲染页面数据之前执行的方法,此配置很重要!!!!!!!
		queryParams: function(params) {
	        var condition = $("form").serializeJSON();

			var list = $('#tree').treeview("getChecked");
			if (list != null && list.length > 0) {
				condition.list = JSON.stringify(list);
			}
	        condition.pageNo = params.offset / params.limit;
	        condition.pageSize = params.limit;
	        return condition;
      	},
      	columns:[
			{checkbox: true,                          // 显示复选框
				formatter: function (i,row) {            // 每次加载 checkbox 时判断当前 row 的 id 是否已经存在全局 Set() 里
					if($.inArray(row.deviceId,overAllIds)!=-1){// 因为 判断数组里有没有这个 id
						return {
							checked : true               // 存在则选中
						}
					}
				}
				},
		  	{title:"序号",align:'center',
		  		formatter:function(value, row, index){
	  				var options = $("#table").bootstrapTable("getOptions");
	  			 	return options.pageSize * (options.pageNumber - 1) + index + 1;
		  		}
		  	},
	        {field:'deviceId',visible:false},
	        {field:'deviceName',title:"设备名称"},
	        {field:'deviceSim',title:"设备SIM"},
	        {field:'deviceIccid',title:"设备ICCID"},
	        {field:'aliyunId',visible:false},
	        {field:'productKey4Aliyun',title:"阿里云产品密钥"},
			{field:'deviceName4Aliyun',title:"阿里云产品名称"},
		],
		onLoadSuccess: function(res){
			var tableData = new Object();
			tableData.total = res.data.pageTotal;
			tableData.rows = res.data.pageRows;
			$('#table').bootstrapTable("load",tableData);
		},

	});
	$('#table').on('uncheck.bs.table check.bs.table check-all.bs.table uncheck-all.bs.table',function(e,rows) {
		var datas = $.isArray(rows) ? rows : [rows];        // 点击时获取选中的行或取消选中的行
		examine(e.type, datas);                                 // 保存到全局 Set() 里
	})
}


js方法


```javascript
var overAllIds = new Array();  //全局数组
function examine(type,datas){
	if(type.indexOf('uncheck')==-1){
		$.each(datas,function(i,v){
			// 添加时,判断一行或多行的 id 是否已经在数组里 不存则添加 
			overAllIds.indexOf(v.id) == -1 ? overAllIds.push(v.deviceId) : -1;
		});
	}else{
		$.each(datas,function(i,v){
			overAllIds.splice(overAllIds.indexOf(v.deviceId),1);    //删除取消选中行
		});
	}
}

//设置bootstrap table checkbox自动选中(反选)

columns : [
    {
        checkbox : true,
        formatter : function(value, row, index) {
            if (row.deviceId == $("#deviceId").val()) {
                overAllIds.indexOf(row.deviceId) == -1 ? overAllIds.push(row.deviceId) : -1;
                return {
                    checked: true//设置选中
                };
            }
        }
    },
  {
      title : '操作',
      width : '130',//设置列宽
      field : 'id',
      align : 'center'
  }
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bootstrap table复选框选多页勾选 的相关文章

随机推荐

  • WiFi探针的工作原理及采集的数据?

    WiFi探针在商业 公共安全领域的大放异彩 更多的人想了解什么是WiFi探针 WiFi探针是怎么工作的 WiFi探针的工作原理 要深入了解WiFi探针技术 首先先认识WiFi使用的网络协议 WiFi采用的是IEEE802 11协议集 此协议
  • element对上传组件二次封装,vue上传下载组件的实现

    前言 对element的上传组件进行二次封装 让他可以实现上传下载功能 实现效果 手动上传 不是自动 选中文件后可上传 也可清空选中文件 单个删除也是可以的 实现步骤 1 封装好的 uploadAndDown vue源码 引入就好
  • Linux 入门常用命令(ZT)

    1 Linux进入与退出系统 进入Linux系统 必须要输入用户的账号 在系统安装过程中可以创建以下两种帐号 1 root 超级用户帐号 系统管理员 使用这个帐号可以在系统中做任何事情 2 普通用户 这个帐号供普通用户使用 可以进行有限的操
  • MATLAB——求冲激响应和阶跃响应

    题目 已知一个RLC串联振荡电路系统函数为 其中L 22mH C 2000pF R 100 求其时域的冲激响应和阶跃响应 代码解释 这段代码定义了三个变量 电感L 电容C和电阻R 然后 定义了两个数组a和b 它们是差分方程的系数 接下来 使
  • 拿不到年薪25W全额退款

    速报 2023年经济下行趋势明显 毕业生出路在哪儿 今年 毕业人数将达到1158万 导致很多公司招聘非常谨慎 要求也变得非常更高 别说offer 现在出门找个实习都难 大学四年我都学了啥 是啊 现在咋找实习丰富简历啊 今年毕业的我该怎么办
  • selenium自动处理验证码

    自动化测试中的验证码处理方法小总结 转自 Selenium中文论坛 gt Selenium RC gt 转 自动化测试中的验证码处理方法小总结 原作者 yanpingsha 目前 不少网站在用户登录 用户提交信息等登录和输入的页面上使用了验
  • kubernetes ——网络存储nfs

    kubernetes 网络存储nfs 一 共享的机器上安装nfs 1 yum y insstall nfs utils 2 mkdir p etc exports 3 vi etc exports ifs kubernetes rw no
  • 恶意代码分析实战——Lab03-01.exe基础动态分析篇

    恶意代码分析实战 Lab03 01 exe基础动态分析篇 1 实验目的 综合运用各种分析工具 分析Lab03 01 exe的基本信息 并推测其功能 2 实验环境 硬件 软件 VMware虚拟机 winxp 硬件 处理器Intel Core
  • 浅谈Class.forName()在JDBC中的作用

    目录 1 Class forName 有什么作用呢 2 为什么不直接new 3 为什么删除Class forName com mysql jdbc Driver 还是可以运行 JDBC是Bridge模式的典型应用 DriverManager
  • 怎么在matlab项目中找到某个变量或函数(必行)

    怎么在matlab项目中找到某个变量或函数 必行 1 首先将当前文件路径设置到项目所在文件夹 2 单击 编辑器 下的 查找文件 功能键 3 在 查找包含以下文本的文件 对话框内输入你要搜索的文本 并在 仅包括以下文件类型 对话框选择相应类型
  • cocos2d-x 卡牌翻牌效果的实现

    cocos2d x 卡牌翻牌效果的实现 2012年07月25日 综合 共 3085字 字号 小 中 大 评论关闭 猴子原创 欢迎转载 转载请注明 转载自Cocos2D开发网 Cocos2Dev com 谢谢 原文地址 http www co
  • Java8 HashMap源码解析(内部存储结构及实现方式详解)

    HashMap是我们日常使用的非常多的java集合框架下的一员 它是基于哈希表的 Map 接口的实现 以key value的形式存在 我们可以通过key快速地存 取value 本文以基于 JDK1 8 为源码 简单梳理了一下hashMap的
  • 西瓜书(周志华):什么是版本空间以及如何求取版本空间

    下面是自己结合百度的资料来理解的一些比较通俗的说法 假设空间 属性所有可能取值组成的可能的样本 版本空间 与已知数据集一致的所有假设的子集集合 绿色加号代表正类样本 红色小圈代表负类样本 GB 是最大泛化正假设边界 maximally Ge
  • 【管理篇 / 登录】❀ 01. 网线连接登录 ❀ FortiGate 防火墙

    简介 当我们拿到新的防火墙的时候 首先要做的就是将电脑快速 简便的连接到防火墙 登录并进行管理 而最方便的连接方式就是用网线了 这里介绍的是最简单的飞塔防火墙物理连接以及浏览器登录访问 桌面式防火墙网线连接 飞塔防火墙产品线里低端的桌面式防
  • 对象转换为JSON数据格式&使用JQuery获取数据

    将对象转换为JSON数据格式 我们需要json lib 2 3 jdk15 jar架包 当然还需要其它架包 来实现对象转JSON数据格式 此架包提供两个类来实现转换 JSONObject fromObject object 将对象转换成js
  • Python爬虫编程实践--re bs及xpath

    Beautiful Soup库入门 Beautiful Soup 是一个HTML XML 的解析器 主要用于解析和提取 HTML XML 数据 它基于HTML DOM 的 会载入整个文档 解析整个DOM树 因此时间和内存开销都会大很多 所以
  • 共识算法-PBFT

    简介 1 PBFT简介 BFT Byzantine Fault Tolerance 是区块链共识算法中需要解决的一个核心问题 例如 公有链网络中 比特币和以太访中用的是POW EOS用的是DPOS PBFT一般用于联盟链场景中 它是共识节点
  • Vivado时序约束(转载)

    Vivado时序约束 本文主要介绍如何在Vivado设计套件中进行时序约束 原文出自Xilinx中文社区 Timing Constraints in Vivado UCF to XDC Vivado软件相比于ISE的一大转变就是约束文件 I
  • vue3 父子组件传参

    父向子传参 父组件
  • bootstrap table复选框选多页勾选

    bootstrap table复选框选多页勾选 在项目中发现 bootstrap table的复选框选中后 翻页操作会导致上一页选中的丢失 api中的 bootstrapTable getSelections 只能拿到当前页的复选框 js