2016-02-10 12 views
8

Ho più tabelle sulla mia pagina Web e ognuna è un DataTable, funziona perfettamente.DataTable pulsante di esportazione fuori tabella

Desidero abilitare l'esportazione alla funzionalità di Excel su ciascuno dei dati, ma il pulsante deve trovarsi al di fuori della tabella DOM (e ogni tabella deve avere il proprio pulsante da esportare).

posso genrate il pulsante HTML5 all'interno della tabella DOM utilizzando:

$('#example').DataTable({ 
     dom: 'Bfrtip', 
     buttons: [ 
      'copyHtml5', 
      'excelHtml5', 
      'csvHtml5', 
      'pdfHtml5' 
     ] 
    }); 

ma voglio in qualche modo con il quale posso collegare un pulsante al di fuori del DOM tavolo di agire come un'esportazione in Excel per la tabella specifica.

risposta

18

Inizializza i pulsanti di ogni tabella tramite un constructor, in questo modo è possibile posizionare gli elementi del pulsante in qualsiasi contenitore desiderato. Se si desidera inserire i pulsanti in un elemento <div id="buttons"></div> all'esterno della tabella, fare questo

var buttons = new $.fn.dataTable.Buttons(table, { 
    buttons: [ 
     'copyHtml5', 
     'excelHtml5', 
     'csvHtml5', 
     'pdfHtml5' 
    ] 
}).container().appendTo($('#buttons')); 

demo ->https://jsfiddle.net/qoqq3okg/

Non so la configurazione più tabelle, ma ora devi solo inserire qualche elementi lungo ciascun elemento <table> e iniettano pulsanti per ogni tabella in quell'elemento come descritto sopra.

+0

Perfetto. Molte grazie. – void

+1

Grazie mille per questa meravigliosa soluzione e Jsfiddle –

+0

@davidkonrad Pls controlla questo http://stackoverflow.com/questions/41348631/datatable-export-button-display-in-custom-position –

0

È possibile aggiungere la classe anche,

buttons[0].classList.add('yourClassName');