//小人

LayUI切换页面记忆选中的列设置选中状态

切换页面记忆选中的列设置选中状态

复制代码
var table_date=new Array();//用于保存当前页数据

var ids=new Array();    //用于保存选中的数据

一.表格回显后事件
// 渲染表格
var ins1 = table.render({
elem: '#shipTable',
url: config.base_server+'squid/ydShip?bool='+bool,
page: true,
cols: [[
{type: 'checkbox', width: tableWidth * 0.02},
{field: 'number', width: 180,align:"center", sort: true, title: '编号'},
]]
  ,done:function (res,curr,count) {
        table_date=res.data;//获得总条数和当前页的数据

for(var i=0;i< res.data.list.length;i++){//循环当前页的数据条数的次数

for (var j = 0; j < ids.length; j++) {//循环ids的次数

if(res.data.list[i].id == ids[j].id) {//判断当前的数据Id和ids中的Id是否相等

res.data.list[i]["LAY_CHECKED"]='true';//设置勾选

//找到对应数据改变勾选样式
var index= res.data.list[i]['LAY_TABLE_INDEX'];
$('tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
$('tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');
}
}
}
var checkStatus = table.checkStatus('shipTable');//获得选中的值 和判断是否是全选 isAll true全选 isAlL false 没有全选
if(checkStatus.isAll){
$('.layui-table-header th[data-field="0"] input[type="checkbox"]').prop('checked', true);
$('.layui-table-header th[data-field="0"] div[class="layui-unselect layui-form-checkbox"]').addClass('layui-form-checked');
}
}
});
二.复选框选中监听 ,将选中的id 设置到缓存数组,或者删除缓存数组
table.on('checkbox(shipTable)', function (obj) {//obj里是选中的列的值
if(obj.checked==true){
if(obj.type=='one'){ //选中一个type的值就是one 全选type的值就是all
ids.push(obj.data);
}else{
for(var i=0;i<table_date.list.length;i++){
ids.push(table_date.list[i]);
}
}
ids=removeArrayRepElement(ids);
}else{
if(obj.type=='one'){
for(var i=0;i<ids.length;i++){
if(ids[i].id==obj.data.id){
ids.remove(i);
}
}
}else{
for(var i=0;i<ids.length;i++){
for(var j=0;j<table_date.list.length;j++){
if(ids[i].id==table_date.list[j].id){
ids.remove(i);
}
}
}
}
}
});


三.删除数组自定义函数

//删除数组自定义函数
Array.prototype.remove=function(dx){
if(isNaN(dx)||dx>this.length){return false;}
for(var i=0,n=0;i<this.length;i++)
{
if(this[i]!=this[dx]){
this[n++]=this[i];
}
}
this.length-=1;
};

form.render();


四.数组去重

function removeArrayRepElement(arr){
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length; j++) {
if (arr[i].id == arr[j].id && i != j) {//将后面重复的数删掉
arr.splice(j, 1);
}
}
}
return arr;
}

 

复制代码
posted @   H_Q  阅读(1346)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示