2012-12-15 16 views
8

I utworzeniu tabeli jquery, że od czasu do czasu musi zostać wyczyszczona i ponowne zaludnionych, mój jasny metoda jest taka:JQuery tablesorter jasne stół informacje

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

Teraz staram się używać tablesorter do sortowania określonej kolumny, ale moim problemem jest to, że kiedy umożliwienia tablesorter:

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

Sposób rozliczania tabela nie działa już, to po prostu utrzymuje dodając nowe dane ze starych danych, tworząc dużo powtarzające się informacje.

Proszę pomóc

Odpowiedz

1

Nie widzę powodu, dla którego nie powinien działać. Czy działa bez wtyczki tablesorter?

Dlaczego dzwoni tablesorter() na table, ale spróbuj usunąć wiersze z #table? Typo?

Spróbuj zalogować się do obiektów jQuery dla $('#table'), $('#table tr') i $('#table tr:gt(0)') i sprawdź, czy wszystko tam jest poprawne.

15

Aby zaktualizować tablesorter się, że „zmiana” musi zostać uruchomiony zanim będzie można go zaktualizować swoją pamięć podręczną

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

Można także skorzystać z wbudowanej funkcji oczyszczenie stołu

$.tablesorter.clearTableBody(table); 

Tutaj Kod jest połączony z 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

jak mogę zachować preferencje sortowania w ten sposób? – apostolov

+0

@apostolov Wypróbuj mój [fork of tablesorter] (http://mottie.github.io/tablesorter/docs/index.html), [update event] (http://mottie.github.io/tablesorter/docs /index.html#update) mogą być oflagowane, aby skorzystać z zawartości podczas aktualizacji. – Mottie

+1

Dziękuję bardzo. To była TYLKO jedna rzecz, która zadziałałaby dla mnie –

0

jedynym sposobem robię to praca polegała na regeneracji całego stołu (usuń go, a następnie utwórz ponownie).

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

Przyczyna:

Its bo gdy dodamy żadnych danych w tabeli skutkować buildCache() metody i zapisać dane tabeli w zmiennej pamięci podręcznej, ale po usunięciu danych z tabeli jej nie będzie dokonywać żadnych zmian w zmiennej pamięci podręcznej.

podczas sortowania danych niż wyczyści tabelę i dołączy dane z pamięci podręcznej do tabeli, tak że istnieją również usunięte dane.

Rozwiązanie:

można modyfikować onselectstart funkcji() lub MouseDown zdarzenie w tablesorter.js

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