簡體   English   中英

jQuery dataTables-TableTools:導出時隱藏行和列

[英]jQuery dataTables - TableTools: hide row and columns while export

使用TableTools從DataTables導出時,如何排除某些列和行。

| id | data      | date           | Status |
|----|-----------|----------------|--------|
| 1  | some data | october 2014   | ok     |
| 2  | some data | september 2014 |        |

我想隱藏狀態列和沒有狀態為“ ok”的行。 解決該問題的任何技巧將不勝感激。

據我所知,沒有一個“魔術”選項可以解決這兩個問題。 解決每個問題的選項似乎互相排斥(如果有人可以反駁,那將是很好的選擇)。 但是我找到了一個解決方案(為避免重復的代碼,我只為復制按鈕顯示它):

var table = $("#example").DataTable({
    dom: 'T<"clear">lfrtip',
    tableTools: {
      sSwfPath: "http://cdn.datatables.net/tabletools/2.2.3/swf/copy_csv_xls.swf",
      aButtons: [
            {
                sExtends : "copy",
                mColumns : [0, 1, 2], 
                fnInit : function( nButton, oConfig ) {
                    $(nButton).on('mousedown', function() {
                        table.column(3).search('ok').draw();
                    });
                    $(nButton).on('mouseup', function() {
                        table.column(3).search('').draw();
                    });
                },
                oSelectorOpts : { filter: 'applied', order: 'current' },
            }
    ]}
});

說明

mColumns : [0, 1, 2] ->僅導出iddatadate

fnInit >初始化按鈕時可以執行某些操作

$(nButton).on('mousedown', function() { ->過濾狀態為“ ok”的行

$(nButton).on('mouseup', function() { ->導出完成后取消設置“ ok”過濾器

oSelectorOpts : { filter: 'applied', order: 'current' } ->將表工具設置為僅按對用戶顯示的順序導出過濾后的行。

使用mousedown / mouseup的原因是,以上操作不適用於click或按鈕功能fnComplete

將此功能添加到所有按鈕,例如xlscsvpdfprint 認為 print按鈕有問題。 據我所知,它通過遵循按鈕指令來解決“問題”。 不知道最近是否已解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM