2016-08-08 13 views
1

Ich habe eine Datentabelle mit einer sortierbaren Spalte. Durch Klicken auf die Kopfzeile wird es sortiert. So weit, ist es gut. Nach dem Sortieren möchte ich dann die Zellen in der Spalte iterieren. Also ich mache das:Sortierung Spalten dann mit Zelle() Funktion

datatable.column(".latest").nodes().each(function (node, index, dt) { 
var the_cell = this.cell(index, '.sto_bid').node(); 

Allerdings zieht dies die Zelle zurück, bevor die Spalte sortiert wurde. Mit anderen Worten, Index = 0 zieht die letzte Zelle in der Spalte zurück. Wie setzen Sie die Indizes beim Sortieren zurück, so dass Zelle (0, '.sto_bid') die erste in der Tabelle angezeigte Zelle zurückgibt?

Die Dokumente scheinen darauf hinzuweisen, dass Calling draw() tut, was ich brauche - es setzt die Daten zurück. Es tut nichts für mich, wenn ich dies zuerst tun:

datatable.draw() 

Der Ordnungsindex noch nach hinten ist.

Antwort

0

Hier ist, was ich getan habe:

// My custom sort function on the raw data array 
sortFilteredGridData(); 

// Remove all rows from the table 
table.clear(); 

// Add the data back to the table 
table.rows.add(filteredGridData); 

// I have a fixed header 
table.fixedHeader.adjust(); 

// Re-draw 
table.draw(); 
0

Sie finden das gesuchte Tag in Ihre zurückgegebenen Daten anwenden möchten:

contentTable.cells({search:'applied'}, ".latest").nodes(); 

Dies sollte alle der DOM-Elemente der Zellen in die bekommen .latest-Spalte in der Reihenfolge, in der sie auf der Seite vorhanden sind. Es nimmt eine andere Annäherung an das Ergreifen der Knoten als Ihr Code tut, also weiß ich nicht, wie man es genau auf Ihre Situation anwendet, aber das sollte Sie in die richtige Richtung bringen

Verwandte Themen