Исключить столбец из экспорта в 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();
          }
        }]
    }
});
Другие вопросы по тегам