2012-12-15 8 views
8

ich eine jquery Tabelle erstellt haben, dass von Zeit zu Zeit gelöscht werden muss, und die Wieder bevölkert, meine klare Methode ist folgende:JQuery Tablesorter klare Tabelleninformationen

//Clear table content before repopulating values 
$('#table tr:gt(0)').remove(); 

Jetzt bin versucht zu verwenden i tablesorter eine bestimmte Spalte zu sortieren, aber mein Problem ist, dass, wenn ich ermöglichen, die tablesorter:

//Initialize tablesorter 
$("table").tablesorter(); 

die Tabelle Clearing-Methode nicht mehr funktioniert, es hält nur die neuen Daten mit den alten Daten hinzufügen, erstellen eine Menge wiederholte Information.

Bitte helfen

Antwort

1

Ich sehe keinen Grund, warum es nicht funktionieren sollte. Funktioniert es ohne das tablesorter Plugin?

Warum rufen Sie tablesorter() auf table, aber versuchen Sie, Zeilen von #table zu löschen? Tippfehler?

Versuchen Sie, die jQuery-Objekte für $('#table'), $('#table tr') und $('#table tr:gt(0)') zu protokollieren und zu sehen, ob dort alles stimmt.

15

tablesorter zu aktualisieren, ein „update“ muss ausgelöst werden, bevor er seinen Cache

aktualisieren
$('table').trigger('update'); 

Sie auch die eingebaute Funktion verwenden könnte die Tabelle

$.tablesorter.clearTableBody(table); 

Hier löschen der Code von this demo

var $table = $('table'); 

// use built in clear function 
$.tablesorter.clearTableBody($table[0]); 
$table 
    .append('<tr><td>george</td><td>papard</td><td>68</td><td>19.99</td><td>55%</td><td>+3</td></tr>') 
    .trigger('update'); 
+0

wie kann ich die Sortiereinstellungen erhalten, die Art und Weise? – apostolov

+0

@apostolov Probieren Sie meine [Gabel von Tablesorter] (http://mottie.github.io/tablesorter/docs/index.html), ein [Update-Ereignis] (http://mottie.github.io/tablesorter/docs /index.html#update) kann markiert werden, um den Inhalt auf update umzuschalten. – Mottie

+1

Vielen Dank. Das war das EINZIGE, was für mich funktionieren würde –

0

der einzige Weg, kombiniert ich es machen könnte Arbeit war, ganze Tabelle neu zu erstellen (entfernen Sie es und erstellen Sie dann erneut).

$(".resultTablePlaceholder").html('').html('<table id="resultTable">...</table>'); 
$("#resultTable").tablesorter(); 
0

Ursache:

Sein, weil, wenn wir alle Daten in der Tabelle hinzuzufügen auslösen buildCache() -Methode und Tabellendaten in Cache-Variablen speichern, aber wenn Sie löschen Daten aus der Tabelle sein nicht jede mögliche Änderung vornehmen werde in der Cache-Variable.

Wenn Sie Daten sortieren, wird es Tabelle löschen und zwischengespeicherte Daten an Tabelle anhängen, so dass auch gelöschte Daten vorhanden sind.

Lösung:

Sie können ändern onselectstart() Funktion oder mousedown- Ereignis in tablesorter.js

//here tb_35 = id of table 
cache = buildCache($('#tb_35')[0]);