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;}
相關文章
相關標籤/搜索