切換頁面記憶選中的列設置選中狀態數組
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;}