Как получить полный список видимых столбцов в таблице данных?
Расширение ответа @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 );
Подробнее Подробности здесь
Редактировать 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 );
Рабочая скрипка