1

TableTools を使用して DataTables からエクスポートするときに、特定の列と行を除外するにはどうすればよいですか。

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

ステータス列とステータスが「OK」でない行を非表示にしたい。この問題を解決するためのヒントをいただければ幸いです。

4

1 に答える 1

1

私の知る限り、両方の問題を解決する「魔法の」オプションはありません。そして、それぞれの問題を解決するためのオプションは、お互いを排除しているように見えます (誰かがそれを反証できればいいのですが)。しかし、私は解決策を見つけました(冗長なコードを避けるために、コピーボタンに対してのみ表示します):

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]id-> 、dataおよびdate列のみをエクスポートします

fnInit-> ボタンが初期化されたときにボタンで何かを実行できるようにする

$(nButton).on('mousedown', function() {-> ステータスが「OK」の行をフィルタ

$(nButton).on('mouseup', function() {-> エクスポートが完了したら、「ok」フィルターの設定を解除します

oSelectorOpts : { filter: 'applied', order: 'current' }-> tabletools を設定して、フィルタリングされた行のみをユーザーに表示される順序でエクスポートします。

mousedown/を使用する理由は、上記がor ボタン機能では機能mouseupしないためです。clickfnComplete

xlscsvpdfなどのすべてのボタンにこの機能を追加しますprint。ボタンに問題があると思います。print私の知る限り、以前はボタンの指示に従うことで「問題」がありました。これが最近修正されたかどうかはわかりません。

于 2014-12-04T12:01:10.673 に答える