2017-06-10 1 views
1

Ich verwende eine sehr alte Version von DataTable Jquery lib, v 1.1.6. Ich versuche, alle gefilterten Daten über alle Seiten zu erhalten, aber es gibt immer die ganzen ungefilterten Daten zurück. Hier ist, was ich habe:Jquery Datatable alle gefilterten Daten über mehrere Seiten erhalten

var getAllFilteredData = function() { 
var tableData = $('#myTable').dataTable({"bFilter": "applied"}).fnGetData(); 
...//do sth with the data; 
} 

ich die verschiedenen Möglichkeiten ausprobiert habe ich im Web gefunden, aber es funktioniert nicht für mich arbeiten, die meisten von ihnen sagte: „Funktion nicht definiert“. Ich gehe davon aus, dass es meine Version ist.

$('#myTable').dataTable().$('tr', {"filter":"applied"})); 
$("#myTable").dataTable()._('tr', {"filter":"applied"}); 
$("#myTable").dataTable().fnFilter("some text"); 

Ich habe versucht, meine Version nicht zu aktualisieren, weil es andere Codes brechen würde.

Kann jemand dieses Problem lösen? Bitte helfen .. Danke !!!!

+0

Gibt es eine Chance auf 1.9.1 ..? Die Methoden, auf die Sie verweisen, waren in 1.6.x nicht verfügbar. Ich kann nicht sehen, was andere Codes scheitern sollten, indem ich von 1.6 zu 1.9 ändere ... Nur meine zwei c. – davidkonrad

+0

Danke! Guter Vorschlag! Ich habe versucht, das Upgrade, aber es hat nicht geklappt. Aber ich habe einen anderen Weg gefunden. Ich werde es als Antwort veröffentlichen. – potbelly

Antwort

1

Eine Lösung gefunden, die mein Problem löst. Siehe THIS LINK. dies versucht:

$.fn.dataTableExt.oApi.fnGetFilteredNodes = function (oSettings) { 
var anRows = []; 
for (var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++) { 
    var nRow = oSettings.aoData[ oSettings.aiDisplay[i] ].nTr; 
    anRows.push(nRow); 
} 
return anRows; }; 

Es gibt eine eingebaute in fn in der neueren Version von Datatable. Aber wenn Sie eine alte Version verwenden. Sie können dies versuchen. Für mich geht das.

Verwandte Themen