切换页面记忆选中的列设置选中状态
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', tableWidth * 0.02},
{field: 'number', 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;
}