Исключая последний столбец 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

Другие вопросы по тегам