Исключить столбец из экспорта в Datatables Tabletools
У меня есть следующая инициализация для моих данных:
$(document).ready(function() {
$('.datatable').dataTable({
"dom": 'T<"clear">lfrtip',
"tableTools": {
"sSwfPath": "/js/plugins/dataTables/swf/copy_csv_xls_pdf.swf",
},
"columnDefs": [{
"targets": 'no-sort',
"orderable": false
}]
});
});
Плагин TableTools для DT предоставляет мне флеш-кнопки для экспорта. Я хотел бы исключить столбцы таблицы определенного класса .no-export
, Я знаю о mColumns
вариант, но я не могу заставить его подать заявку на столбец по классу. Я прочитал ответ здесь Исключая последний столбец jQuery DataTables.net TableTools, где Джо Джонстон предлагает такую возможность, установив:
"aoColumnDefs": [{ "mColumns": false, "aTargets": ["no-export"] }],
Я пытался применять код по-разному, но в моем понимании чего-то не хватает.
1 ответ
Решение
РЕШЕНИЕ
Смотрите этот ответ для возможного решения.
Ты можешь использовать mColumns
определить функцию, которая будет возвращать индексы всех столбцов, имеющих класс no-export
назначен на th
элемент в шапке.
$('.datatable').dataTable({
"dom": 'T<"clear">lfrtip',
"tableTools": {
"sSwfPath": "/js/plugins/dataTables/swf/copy_csv_xls_pdf.swf",
"aButtons": [{
"sExtends": "csv",
"mColumns": function (settings) {
var api = new $.fn.dataTable.Api( settings );
return api.columns(":not(.no-export)").indexes().toArray();
}
}]
}
});