如何获取数据表中可见列的总列表?
扩展@Aswin Kumar 的答案
let dataTable = $('#example').DataTable({
"columnDefs": [
{ "visible": false, "targets": [1] },
{ "visible": false, "targets": [4] },
{ "visible": false, "targets": [5] },
]
});
let result = dataTable.columns().visible().reduce((a, v, i) => v ? [...a, i] : a, [])
console.log(result) // Gives you index list of all the visible columns
当用户重新登录时,他应该只能获得那些索引
他上次保存的那个?
这可能有点棘手。
您需要将每个列值保存在数据库中,并在加载表时获取这些值并使用它们来显示列
类似的东西
table.columns( [ 0, 1, 2, 3 ] ).visible( false, false );
更多Detail here
编辑 1:
获取所有可见的列名和索引。
function get_visible_columns() {
//console.log(table);
var all_columns = table.settings().init().columns;
console.log('all_columns', all_columns);
var visible_columns = [];
for (var i in all_columns) {
if (table.column(all_columns[i].name + ':name').visible()) {
visible_columns.push(all_columns[i].name);
console.log("index: "+i);
}
}
alert(visible_columns.join(', '));
}
索引将用于恢复所有可见列
table.columns( [ 0, 1, 2, 3 ] ).visible( false, false );
Working Fiddle