2015-12-15 1 views
2

Я могу экспортировать динамически выбранные видимые столбцы в pdf со следующим. Однако я хочу также исключить некоторые видимые столбцы (столбцы кнопок). Как мне это сделать?Bootstrap DataTable исключает определенные видимые столбцы из экспорта

buttons: [{ 
    extend: 'csv', 
    orientation: 'landscape', 
    pageSize: 'LEGAL', 
    text: 'Export as CSV', 
    exportOptions: { 
    columns: ':visible' 
    } 
}, { 
    extend: 'pdfHtml5', 
    orientation: 'landscape', 
    pageSize: 'LEGAL', 
    text: 'Export as PDF', 
    exportOptions: { 
    columns: ':visible' 
}, { 
    extend: 'colvis', 
    text: 'Show/Hide Columns' 
}] 
+0

в состоянии предоставить больше информации или рабочий пример Вы? –

+0

Этот раздел {...} - это все, что требуется для объяснения проблемы. Вопрос DataTables версии 1.10. Соответствующая конфигурация - это {expand: 'pdfHtml5', ориентация: «пейзаж», pageSize: «LEGAL», текст: «Экспорт как PDF», exportOptions: {columns: ': visible'} }, я предполагаю должен быть способ обозначить печать всех видимых столбцов, кроме этих столбцов [0,1], например. Существует возможность разрешить печать всех видимых столбцов и столбцов целевых столбцов: [0, ': visible'], но я хочу обратное. – jimmy

ответ

0

Ключ в том, чтобы добавить метод к свойству столбцов в экспортных вариантах, что фильтры, если столбец является видимым и, если столбец не является частью колонки, которые вы не хотите экспортировать. Переменная idx - это индекс столбца.

Работа здесь примера: https://jsfiddle.net/L06yu0vz/1/

$(document).ready(function() { 

    // Do not export these columns 
    var hideFromExport = [0,1,2]; 

    var table = $('#example').DataTable({ 
    dom: 'Bfrtip', 
    buttons: [{ 
     extend: 'copyHtml5', 
     exportOptions: { 
     columns: function (idx, data, node) { 
      var isVisible = table.column(idx).visible(); 
      var isNotForExport = $.inArray(idx, hideFromExport) !== -1; 
      return isVisible && !isNotForExport ? true : false; 
     } 
     } 
    }, 'colvis'] 
    }); 
}); 
+0

Мое требование - не экспортировать жестко закодированные столбцы, такие как 0,1 и т. Д., Но для экспорта всех видимых столбцов, и мне было удачно это сделать, используя {columns: ': visible'}, но мне нужно сделать шаг дальше и экспортировать все видимые столбцы BUT not visible column 0 и 1. – jimmy

+0

Можете ли вы попробовать exportOptions: {columns: ': visible: not: (nth-child (4))'}? –

+0

Ошибка поиска: ошибка синтаксиса, нераспознанное выражение:: visible: not: (nth-child (4)) Я попытался упростить ваше выражение и удалить: видимый, чтобы найти проблему, но также получил нераспознанное выражение для {columns: 'not :(: п-й ребенок (4))}. Этот синтаксис хорош {columns: ': nth-child (4)'}, поэтому не синтаксис неверен. – jimmy