2017-08-29 4 views
0

Ich versuche, in einem neuen Tab die PDF zu öffnen, dass es in einer Sammlung Schaltfläche von jQuery Datatables ist, aber es funktioniert nicht. Stattdessen zeigt es mir eine Warnmeldung wie folgt aus:Öffnen PDF in einem neuen Tab mit jQuery Datatables

enter image description here

Dies ist meine jQuery-Konfiguration:

$("#clientes").DataTable({ 
    dom: 'T<"clear">lfrtip', 
    tableTools: { 
     "aButtons": [ 
      { 
       "sExtends": "collection", 
       "sButtonText": "Generar Listado <span class='caret' />", 
       "aButtons": ['csv', 'xls', { 
        extend: 'pdfHtml5', 
        download: 'open' 
       }] 
      } 
     ], 
     "sSwfPath": "Content/DataTables/swf/copy_csv_xls_pdf.swf" 
     } 
    }); 

Irgendwelche Ideen, wie ich dieses Problem mit dieser Sammlung Button von jquery Datentabellen lösen können?

enter image description here

Antwort

0

Das Problem scheint kommen aus "sSwfPath" Wert versehen falsch, so dass die Taste Typ wird undefined:

Ich habe in meinem Bündel Klasse versucht, alle Referenzen setzen, damit es funktioniert

"sSwfPath": "Content/DataTables/swf/copy_csv_xls_pdf.swf" 

Die Schaltfläche Prüfbedingung gilt innerhalb _fnButtonDefinations in dataTables.tableTools.js:

if (typeof TableTools.BUTTONS[ buttonSet[i] ] == 'undefined') { 
    alert("TableTools: Warning - unknown button type: "+buttonSet[i]); 
    continue; 
} 
buttonDef = $.extend({}, TableTools.BUTTONS[buttonSet[i]], true); 

können Sie versuchen, UrlHelper.Content mit relativen Pfad zu SWF-Datei oder sich direkt von DataTables CDN externe Ressource:

$("#clientes").DataTable({ 
    dom: 'T<"clear">lfrtip', 
    tableTools: { 
     "aButtons": [ 
      { 
       "sExtends": "pdf", 
       "sButtonText": "Generar Listado <span class='caret' />", 
       "aButtons": ['csv', 'xls', { 
        extend: 'pdfHtml5', 
        download: 'open' 
       }] 
      } 
     ], 
     "sSwfPath": "http://cdn.datatables.net/tabletools/2.2.2/swf/copy_csv_xls_pdf.swf" 
    } 
}); 
:

// local content (in Razor view) 
"sSwfPath": "@Url.Content("~/Content/DataTables/swf/copy_csv_xls_pdf.swf")" 

// external resource (i.e. DataTables CDN) 
"sSwfPath": "http://cdn.datatables.net/tabletools/2.2.2/swf/copy_csv_xls_pdf.swf" 

Sie können auch sExtends-pdf statt collection zu setzen versuchen,

Beispiel: JSFiddle Demo

Das nächste Problem, das Sie beachten müssen, ist das Dateisicherheitsproblem aufgrund einiger Einschränkungen beim Laden externer SWF-Ressourcen. Öffnen Sie global security settings panel und wählen Sie "Immer erlauben" für CDN-Ressource, oder für lokal gespeicherte SWF verwenden Sie "Orte hinzufügen" (siehe Bild unten), geben SWF-Pfad zu sSwfPath dann bestätigen, um Vertrauen für diesen Pfad anwenden (müssen möglicherweise die Sicht danach aktualisieren) .

Adobe Flash Player Settings Manager

Referenzen:

DataTables TableTools buttons not working correctly (simple example)

TableTools export in JQuery Datatables not working

jQuery dataTables - TableTools not working

jQuery TableTools not working

Verwandte Themen