2016-05-02 2 views
-1

Ich versuche, Datentabelle ersetzen Pagation "Zurück" & "Next" mit fa-Symbolen (<,>), aber Fehler "DataTable kann nicht neu initialisiert werden." Ich habe danach gesucht und bekam die Diagnose als „Tables stellt eine Methode destroy() einen alten Tisch zu zerstören, so dass Sie der Lage wäre, ein neues an seiner Stelle zu initialisieren.“
https://datatables.net/manual/tech-notes/3Ich versuche, Datentabelle Paginierung "Vorherige" & "Nächste" mit fa-Symbole (< , >) zu ersetzen, aber Fehler "DataTable kann nicht reinitialisieren."

I verwendet der folgende Code es funktioniert, aber meine Tabelle ist zerstört und neu erstellt. $(document).ready(function() {

oTable = $('.pagination').dataTable({ 
     "ordering": true, 
     //"sDom":"flrtip" 
     //"sDom": 'r<"contactsTable"t><p>', 
     "oLanguage": { 
      "oPaginate": { 
       "sNext": '<i class="fa fa-chevron-right" ></i>', 
       "sPrevious": '<i class="fa fa-chevron-left" ></i>' 
      } 
     } 
    }); 
    oTable.destroy(); 
}); 

Gibt es eine andere Möglichkeit, die Symbole zu ändern, ohne das alte Tabellenobjekt zu zerstören?

+0

Ihr Code scheint gut zu funktionieren, ohne den Tisch zu zerstören, zumindest in dieser Geige: http://jsfiddle.net/h2x7mfh4/. Wie bevölkern Sie übrigens Ihre Tabelle mit Daten? – ConstantineUA

+0

Hallo, #ConstantineUA versuchen Sie diese jsfiddle: [Link] (http://jsfiddle.net/jackripper786/h2x7mfh4/2/) in dem ein Fehler ausgelöst wird, dass Sie Datentabelle nicht neu initialisieren können. Die Lösung dazu finden Sie unter diesem Link [link] (https://datatables.net/manual/tech-notes/3), aber dafür muss die alte Datentabelle zerstört werden. Gibt es eine Möglichkeit, die Paginierungssymbole der Datentabelle zu ändern, ohne die alte Tabelle zu zerstören? –

Antwort

2

Nun, ich überprüfte Ihren Link und sah die Fehlermeldung, aber es funktioniert genau so, wie es in der documentation erläutert wurde, auf die Sie hingewiesen haben.

Sie erstellen ein Datentabellenobjekt mit einem Satz von Parametern (Zeilen 23-38) und erstellen es dann mit dem anderen (Zeilen 41-49) neu. Datentabelle kann Parameter nach Initialisierung nicht überschreiben, deshalb wird dieser Fehler ausgelöst. Ich bin neugierig, warum brauchen Sie den zweiten Aufruf, warum können Sie ein Datentabellenobjekt nicht von Anfang an mit der richtigen Seitennummerierung initialisieren?

Vielleicht, wenn Sie Paginierung Stil nach Seitenerstellung ändern müssen, könnten Sie Ihre Datatable-Objekt mit beiden Pagern und zeigen/verstecken sie bauen je nach Bedingungen:

oLanguage: { 
     oPaginate: { 
      sNext: '<span class="pagination-default">Next</span><span class="pagination-fa"><i class="fa fa-chevron-right" ></i></span>', 
      sPrevious: '<span class="pagination-default">Prev</span><span class="pagination-fa"><i class="fa fa-chevron-left" ></i></span>' 
     } 
    } 

http://jsfiddle.net/Lm8ob3jw/, aber bitte beachten Sie, dass die Paginierung Die Steuerelemente werden jedes Mal neu gerendert, wenn ein Benutzer die Taste "Nächste/Vorherige" drückt.

+0

Ja #ConstantineUA Sie haben Recht, dass "Datatable Parameter nach der Initialisierung nicht überschreiben kann". Aber ich wollte prüfen, ob es einen Weg gibt, wenn es gemacht werden kann. Und die einzige Lösung dafür ist, dass Sie die alte Tabelle zerstören und dann eine neue erstellen müssen, die ich nicht wollte. Letztendlich habe ich die Änderungen am Datenobjekt beim ersten Aufruf vorgenommen. –

+0

funktioniert wie Charme. aber oLanguage: { oPaginate: { s nächste: '>', sPrevious: '<' } } macht den Job gut. –