2016-07-03 6 views
0

Ich habe Schwierigkeiten, eine JS-Funktion, die Paging auf alle DataTables auf meiner Seite umschalten wird. Was mache ich falsch?Javascript Umschalten zwischen allen Datentabellen

Hinweis: Immer, wenn ich togglePaging() in der Chrome-Konsole ausführen, bekomme ich als Antwort.

var globalPaging = true; 

function togglePaging() { 

    globalPaging = !globalPaging; 

    $('.dataTable').each(function(){ 

     var oTable = $(this).dataTable();   
     var oSettings = oTable.fnSettings(); 
     oSettings.aoColumns[1].bPaginate = globalPaging; 

     var oTableDT = $(this).DataTable(); 
     oTableDT.draw(); 

    }); 
} 

$(document).ready(function(){ 
    $('table.toDataTable').DataTable({ 
     "bPaginate": globalPaging  
    }); 
}); 

Hier ist eine Demo: jsfiddle.net/8n1nj0bu


Update: Hier ist die Lösung, die ich mit ging, von Teddy Antwort abgeleitet: jsfiddle.net/jyf8h2je

Antwort

1

Die draw() Funktion aktualisieren Sie Ihre Tabelle nur Inhalt. Wenn Sie andere Eigenschaften ändern möchten, müssen Sie Ihre Tabelle möglicherweise neu initialisieren. Draw API: https://datatables.net/reference/api/draw

Mein Beispiel:

$('.dataTable').each(function(){ 
    var oTableDT = $(this).DataTable({ 
     "bPaginate": globalPaging, 
     "bDestroy": true 
    }); 
}); 

https://jsfiddle.net/8n1nj0bu/1/

Diese Lösung hat einen Nachteil, dass Sie alle Ihre Eigenschaften wieder init müssen.

Hinweis: Mein FF43 kann nicht onclick laufen, also benutze ich stattdessen jquery.

+0

Also, ich nehme an, es ist möglich, Zustand zu speichern, die Zerstörung zu tun, dann erneut anwenden, um zu verhindern, dass das Umschalten von Paging den angewandten gesuchten Filter verwirft. Recht? (Wenn es einfach ist, könnten Sie bitte zeigen, wie das geht?) – synaptik

+0

... eigentlich sollte ich einfach 'search()' verwenden, um die Suchbegriffe zu erhalten, dann die destroy/paging-toggle ausführen und dann die Suche verwenden Begriffe in einem 'search ()' Aufruf, gefolgt von 'draw()'. – synaptik

+0

@synaptik Wenn Sie suchen wollen, ändern Sie nur den Inhalt der Tabelle, also sollte draw() gut funktionieren. – teddy