Layui表格复选框下一页后保持选中,table复选框checkbox跨页保持复选状态

本文主要是介绍Layui表格复选框下一页后保持选中,table复选框checkbox跨页保持复选状态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

由于layui表格切换其他页码之后前面选中的就会被刷新,只能选择当前页的数据,这样就让人体验不好,我们可以使用以下方式实现保持每页的选中。
实现内容,layui表格复选框点击下一页后前面选中的保持选中。

实现

创建两个全局的集合变量

var temp_table_list = []; // 临时保存每页的所有数据
var temp_all_list = []; // 临时保存所有选中的数据

列表实现

table.render({elem: '#user_table',id: 'user_table',url: 'personnel/select',title: '用户管理',skin: 'line',page: true,cols: [[{type: 'checkbox'},{field: 'eno', title: '工号', sort: true, align: 'center'},{field: 'name', title: '姓名', sort: true, align: 'center'},{field: 'dnames', title: '部门', sort: true, align: 'center'},{field: 'sex', title: '性别', sort: true, align: 'center'},{field: 'phone', title: '手机号码', sort: true, align: 'center'},]], done: function (res, currPage, count) {temp_table_list = res.data;temp_table_list.forEach(function(o, i) {for (var j=0; j<temp_all_list.length; j++){if(temp_all_list[j].id == o.id){// 这里才是真正的有效勾选res.data[i]["LAY_CHECKED"]='true';// 找到对应数据改变勾选样式,呈现出选中效果var index= res.data[i]['LAY_TABLE_INDEX'];$('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);$('.layui-table tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');}}})// 设置全选checkbox的选中状态,只有改变LAY_CHECKED的值, table.checkStatus才能抓取到选中的状态var checkStatus = table.checkStatus('user_table');//这里的studentTable是指分页中的idif(checkStatus.isAll){// 是否全选// layTableAllChoose$('.layui-table th[data-field="0"] input[type="checkbox"]').prop('checked', true);//data-field值默认为0,如果在分页部分自定义了属性名,则需要改成对应的属性名$('.layui-table th[data-field="0"] input[type="checkbox"]').next().addClass('layui-form-checked');//data-field值默认为0,如果在分页部分自定义了属性名,则需要改成对应的属性名}}
});

监听表格复选框

// 选中行监听(临时存储复选数据,用于列表复选框回显上一页)
table.on('checkbox(user_table)', function (obj) {if (obj.checked == true) {if (obj.type == 'one') {temp_all_list.push(obj.data);} else {for (var i = 0; i < temp_table_list.length; i++) {temp_all_list.push(temp_table_list[i]);}}} else {let all_list = temp_all_list; // 使用临时数组,防止删除临时选中所有的数组错乱if (obj.type == 'one') {for (var i = 0; i < temp_all_list.length; i++) {if (temp_all_list[i].id == obj.data.id) {for (var k=0; k<all_list.length; k++){if (all_list[k].id == obj.data.id) {all_list.splice(k, 1);}}}}} else {for (var i = 0; i < temp_all_list.length; i++) {for (var j = 0; j < temp_table_list.length; j++) {if (temp_all_list[i].id == temp_table_list[j].id) {for (var k=0; k<all_list.length; k++){if (all_list[k].id == temp_table_list[j].id) {all_list.splice(k, 1);}}}}}}temp_all_list = all_list;}
});

最终数据获取就是 temp_all_list

这篇关于Layui表格复选框下一页后保持选中,table复选框checkbox跨页保持复选状态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822898

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

hdu3006状态dp

给你n个集合。集合中均为数字且数字的范围在[1,m]内。m<=14。现在问用这些集合能组成多少个集合自己本身也算。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.Inp

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

Prompt - 将图片的表格转换成Markdown

Prompt - 将图片的表格转换成Markdown 0. 引言1. 提示词2. 原始版本 0. 引言 最近尝试将图片中的表格转换成Markdown格式,需要不断条件和优化提示词。记录一下调整好的提示词,以后在继续优化迭代。 1. 提示词 英文版本: You are an AI assistant tasked with extracting the content of

状态模式state

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/state 在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。 在状态模式中,player.getState()获取的是player的当前状态,通常是一个实现了状态接口的对象。 onPlay()是状态模式中定义的一个方法,不同状态下(例如“正在播放”、“暂停