2015-09-10 7 views
1

J'ai l'initialisation suivante pour mes datatables:colonne d'exportation datatables Tabletools

$(document).ready(function() { 
    $('.datatable').dataTable({ 
     "dom": 'T<"clear">lfrtip', 
     "tableTools": { 
      "sSwfPath": "/js/plugins/dataTables/swf/copy_csv_xls_pdf.swf", 
     }, 
     "columnDefs": [{ 
      "targets": 'no-sort', 
      "orderable": false 
     }] 

    }); 
}); 

Le TableTools plugin for DT me donne les boutons flash pour l'exportation. Je voudrais exclure les colonnes de table d'une certaine classe .no-export. Je suis au courant de l'option mColumns mais je n'arrive pas à l'appliquer pour une colonne par classe. J'ai lu la réponse ici Excluding last column of jQuery DataTables.net TableTools où Joe Jonston suggère la possibilité de réglage:

"aoColumnDefs": [{ "mColumns": false, "aTargets": ["no-export"] }], 

J'ai essayé d'appliquer le code de diverses manières, mais il y a quelque chose qui manque dans ma compréhension.

Répondre

1

SOLUTION

Voir this answer une solution possible.

Vous pouvez utiliser mColumns pour définir une fonction qui renverra les index de toutes les colonnes ayant la classe no-export affectée à l'élément th dans l'en-tête.

$('.datatable').dataTable({ 
    "dom": 'T<"clear">lfrtip', 
    "tableTools": { 
     "sSwfPath": "/js/plugins/dataTables/swf/copy_csv_xls_pdf.swf", 
     "aButtons": [{ 
      "sExtends": "csv", 
      "mColumns": function (settings) { 
       var api = new $.fn.dataTable.Api(settings); 
       return api.columns(":not(.no-export)").indexes().toArray(); 
      } 
     }] 
    } 
}); 
+1

Merci, je suis juste essayer, mais il semble que le code exporte en fait le contraire, les colonnes avec classe '.no-export' - mais presque ... – jtheman

+1

@jtheman, vous à droite, c'est le contraire, j'ai corrigé le code. –

+0

Fantastique! :) Merci! – jtheman