2010-07-08 13 views
12

Wenn ich meine Seite an erster Stelle lade gibt es nichts in der Tabelle und die Datentabelle ist nicht initialisiert, nach ein paar Interaktionen Zeilen hinzugefügt und wenn alle Zeilen hinzugefügt werden (mit AJAX-Aufrufe) initiiere ich die Datentabelle auf diese Weise:Datatables reInitialization (jQuery)

oTable = $('#table).dataTable({ 
      "bJQueryUI": true, 
      "bSortClasses": false, 
      "sDom":'T<"clear">', 
      "sPaginationType": "full_numbers", 
      "sDom": 'T<"clear"><"fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"lfr>t<"fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"ip>' 
     }); 

Das Problem ist, ich mag diese Tabelle löschen und über das Hinzufügen von Material in dem hTML-Code halten zu können und rEINIT dann die Tabelle aus diesem Quellcode ohne fnAddData zu verwenden.

Irgendwelche Ideen?

Vielen Dank!

Antwort

3

Können Sie fnUpdate und fnClearTable verwenden? http://datatables.net/api

+0

Ich habe nicht ganz verstanden, wie fnUpdate funktioniert. FnClearTable, aber ich möchte es nicht löschen, ich möchte in der Lage sein, es erneut zu initiieren, ohne die Warnmeldung zu erhalten. – Pierluc

1

Verwenden Sie die Initialisierungsvariable bDestory. Nicht nDestroy.

23

Aufruf $('#table').dataTable().fnDestroy(); wird die Tabelle dataTable Code löschen und ermöglichen Sie die Tabelle zu manipulieren, und rufen Sie dann dataTable wieder darauf.

+0

Einfache und beste Lösung, vielen Dank – amal50

3

Wenn Sie den Dataset-Satz bDestroy: true initialisieren und bevor Sie die Update-Clear-Tabelle über $('#myTable').dataTable().fnClearTable(); hinzufügen. Das ist es!!

+0

Das hat es geschafft. fnDestroy() löscht die Seitentasten. FnClearTable(), wenn bDestroy nicht angegeben ist, wird die Seitentasten nicht korrekt zurücksetzen. – jdp

0

um die Tabelle zu löschen, oTable.api(). Clear(). Draw();

um Daten von ajax neu zu laden, oTable.api(). Ajax.reload();

Ich glaube nicht, dass reInit ist eine gute Art und Weise