2015-09-03 6 views
0

J'utilise Datatable TableTools version 2.2.4. et Bootstrap v3.0.0. J'essaie d'exporter la table dans l'onglet Bootstrap en CSV, XLS et PDF. J'utilise ce code:Onglets Bootstrap avec Datatables TableTools

tableTools: { 
       "sSwfPath": instance.SwfUrl, 
       "aButtons": ["csv", "xls", { 
        "sExtends": "pdf", 
        "mColumns": [ 1, 2, 3, 4,5,6] 
       }] 
      }, 

Le problème est que la table est dans l'onglet, ce qui signifie qu'il n'est pas visible lors de l'initialisation. Si je mets une table hors des onglets, ça fonctionne comme un charme.

Je googlé ce problème et les solutions étaient comme ceci:

$('.nav-tabs a').on('shown.bs.tab', function (event) { 
     var table = $.fn.dataTable.fnTables(true); 
     if (table.length > 0) { 
      $(table).dataTable().fnAdjustColumnSizing(); 
      var oTableTools = TableTools.fnGetInstance(table[0]); 
      if (oTableTools != null && oTableTools.fnResizeRequired()) { 
       oTableTools.fnResizeButtons(); 
      } 
     } 
    }); 

Je suis sûr que cet événement est déclenché, mais il n'a pas résolu mon problème.

+0

S'il vous plaît envoyer votre code tout – Zl3n

+0

Désolé, ce n'est pas possible.There est trop autour du code. Je sais exactement où est le problème. C'est parce que la table n'est pas visible lors de l'initialisation de TableTools. Savez-vous, comment initialiser la fonction pour l'exportation lorsque la table est visible? – Fox

+0

Normalement avec '$ ('. Nav-tabs a'). On ('shown.bs.tab', function (event) {', cela devrait marcher – Zl3n

Répondre

0

Essayez cette

JS

if ($('#TableID').is(':visible')) { 
    InitTableTools($(this)) 
    // $(this) --> passes the table object if visible. 
    //So that you can initialize table tools for that particular visible table only 
} 
else 
{ 
DestroyTableTools($(this))// $(this) --> passes the table object if visible 
} 

function InitTableTools(Table) 
{ 
// code to initialize table tools 
} 
funtion DestroyTableTools() 
{ 
// code to destroy the initialised table tools , if destroy option is available in plugin 
}