2016-04-19 8 views
2

Ich habe eine Datentabelle, die gefüllt und angezeigt wird, wie ich es wünsche. Es gibt eine Datumsspalte, auf die ich einen Datumsbereichsfilter anwenden könnte. Es gibt zwei Steuerelemente auf meiner HTML-Seite, denen ich IDs gegeben habe und zu denen die Datepicker-Jquery hinzugefügt wurde. Ich habe mir das Codebeispiel https://datatables.net/plug-ins/filtering/row-based/range_dates angesehen, aber wenn ich den Code a starte und das Datum auf der Steuerung ändere, sehe ich einen Fehler, der oTable.draw() keine Funktion ist.datatable.fnDraw() ist keine Funktion

Ich verwende Datentabellen 1.10.11 und ich habe meinen Tisch mit dem folgenden Code

var statementTable = $('#statementTable').DataTable({....}); 

Der auf Änderungsereignis gesetzt wird Trigger mit dieser Linie

$('#startdatepicker').change(function() { statementTable.fnDraw(); }); 

Wenn diese Zeile ausgeführt Ich sehe den Fehler in der Konsole:

AnweisungTabelle.FnDraw() ist keine Funktion.

Kann mir bitte irgendjemand einen Zeiger anbieten? Dank Richard

+0

Was verwenden Sie 'statementTable.fnDraw()' oder 'statementTable.draw()'? Weil letzteres ist, was Sie verwenden sollten – PierreDuc

+0

@PierreDuc Ich habe es sowohl mit FnDate() und Datum() versucht, aber die gleiche Fehlermeldung erhalten. – RichK

+0

Ihre 'Anweisungstabelle' ist keine Datentabelle. deshalb existiert die fdDraw() nicht. Initialisierst du es richtig? Vielleicht ist ein Wert für den Konstruktor nicht definiert? – Sharky

Antwort

0

Dies wurde durch die Deklaration der Anweisungstabelle verursacht, die sich am falschen Ort befindet und daher für den weiteren Kontext nicht verfügbar ist. Siehe die Kommentare unter dem ursprünglichen Beitrag.

3

Method fnDraw() ist älter API-Methode für Datentabellen 1.9.

Verwenden Sie für neuere DataTables 1.10+, wenn Sie die Tabelle mit DataTable() initialisieren, stattdessen die neuere API-Methode draw().

$('#startdatepicker').change(function() { statementTable.draw(); }); 

Alternativ können Sie Ihre Tabelle mit dataTable() initialisieren, dann ältere API-Methoden wie fnDraw() würde immer noch funktionieren.