2016-06-01 13 views
1

Haben Sie einige Daten, die kommt aus AJAX und wird in Tabelle gerendert. Haben Sie auch Umschalttaste, seine Phasen sind 'Show duplicates' und 'Show all'. Wenn Sie zum ersten Mal auf die Seite kommen, werden alle Daten gerendert, Buttonphase ist 'Duplikate anzeigen'. Wenn klicken Sie auf ‚Duplikate anzeigen‘, spezielle Ajax-Request an den Server geht und Antwort wird in JS Verarbeiten des:DataTables: Reset Tabelle Daten

if (res[0] == '200' || res[0] == '404') { 
    if (!is_duplicates_showed) { //if pressed 'Show duplicates' 

     $.fn.dataTable.ext.search.push(
      function(settings, data, dataIndex) { 
       return $.inArray($(table.row(dataIndex).node()).find('td:first').find('form').find('input[name="registration_id"]').val(), res[1]) > -1; 
      } 
     ); 

     table.draw(); 
    } else { //if pressed 'Show all' 

Ergebnis: nur die Zeilen sichtbar sind, welche registration id solche ids von Ajax aneignet. Die Tastenphase wechselt zu 'Alle anzeigen'.

Frage: Wie setzt man die Daten zurück (alle Daten erneut anzeigen), wenn 'Alle anzeigen' gedrückt wird?

Was ich versucht (in else Abschnitt):

1.

var table = $('#participants').DataTable(); 
table 
    .search('') 
    .columns().search('') 
    .draw(); 

2.

$.fn.dataTable.ext.search.pop(); 

3.

table.destroy(); 
var newTable = $('#participants').DataTable(); 
newTable.draw(); 

Kein Erfolg. Nach diesen Vorgängen sehe ich noch "gefilterte" Zeilen, die sich durch push() ergeben haben.

Antwort

1

Versuchen Sie den Code unten:

$.fn.dataTable.ext.search = []; 
table.draw(); 
+0

Thnaks, funktioniert gut) –

Verwandte Themen