Исключая последний столбец jQuery DataTables.net TableTools
Вопрос: Как я могу исключить последний столбец jQuery DataTables.net при использовании дополнений TableTools для экспорта?
подробности
Я инициализирую несколько разных таблиц с помощью jQuery DataTables.net и дополнений TableTools. Все они используют один и тот же код инициализации.
Разные таблицы имеют разное количество столбцов. Тем не менее, все таблицы имеют последний общий столбец, который является столбцом "действия" с кнопками. При экспорте с помощью TableTools в экспорт включаются определенные элементы из этого столбца. Я хотел бы исключить столбец действия для экспорта TableTools для всех таблиц.
Мне известна опция mColumns, но, похоже, вам нужно знать количество столбцов, что не работает в моем описанном сценарии, поэтому, пожалуйста, не давайте мне такие ответы:
"mColumns": [ 0, 1, 4 ]
Спасибо
5 ответов
Просто для googlers: в tabletools 2.2.3 теперь вы можете использовать функцию для mColumns
var dataTable = $grdData.DataTable({
tableTools: {
aButtons: [{
"sExtends": "csv",
"sButtonText": "csv",
"mColumns": function ( dtSettings ) {
var api = new $.fn.dataTable.Api( dtSettings );
return api.columns(":not(:last)").indexes().toArray();
}
}]
}
});
Вы можете исключить использование имен классов следующим образом:
"aoColumnDefs": [{ "mColumns": false, "aTargets": ["no-export"] }],
Вот аналогичный код, который у меня работает в производстве:
var oTable = $('#<%= gvComputers.ClientID %>').dataTable({
"bJQueryUI": true,
"bStateSave": true,
"sPaginationType": "full_numbers",
"aLengthMenu": [[5, 10, 25, 50, 100, -1], [5, 10, 25, 50, 100, "All"]],
"aoColumnDefs": [
{ "sSortDataType": "dom-text", "aTargets": ["text-sort_fixed"] },
{ "sType": "numeric", "aTargets": ["numeric-sort"] },
{ "sSortDataType": "dom-select", "aTargets": ["select-sort"] },
{ "sSortDataType": "dom-checkbox", "aTargets": ["checkbox-sort"] },
{ "bSearchable": false, "aTargets": ["no-search"] },
{ "bSortable": false, "aTargets": ["no-sort"] }
]
});
Я настраиваю классы по мере необходимости для заголовка, нижнего колонтитула и ячеек таблицы, так как я не знаю, какие столбцы пользователь удалит из своего личного представления данных.
НТН
В моем случае лучшим решением было установить атрибут exportable столбца в false. Точно так же вы можете установить заказ, поиск и т. Д.
Предположим, у вас есть шесть столбцов, и вы хотите отображать только столбцы 1, 2, 3 и 5. Попробуйте это:
{
text: "print",
extend: "print",
className: "btn btn-lg btn-danger",
exportOptions:
{
columns: [0,1,2,4]}
}
}
Лучшее, что я нашел до сих пор, это эти хаки. Не особенно полезно в моем случае, но, может быть, вам повезет больше
http://datatables.net/forums/discussion/327/tabletools-v1.0.2-save-as-excel-csv-copy-and-print/p3