2011-01-01 9 views
11

Witam mam problem z dynamicznie dodanych wierszy jQuery tablesorter,Problem z jQuery tablesorter z dynamicznymi dodanych wierszy

muszę dodać wiersz na początku tabeli, domyślnie tablesorter działa dobrze, ale po wiersz jest dodawany, tabela posortowana tylko sortuje za pomocą poprzednich wierszy, co oznacza, że ​​nowy wiersz nie jest uwzględniony w procesie sortowania, nowy wiersz ma niektóre, ale nie wszystkie pola puste rozwiązanie?

Odpowiedz

20

Strona internetowa tablesorter zawiera szczegółowe informacje, jak to zrobić pod adresem: Appending table data with Ajax. Kod jest odtworzony poniżej:

$(document).ready(function() { 
    $("table").tablesorter(); 
    $("#ajax-append").click(function() { 
     $.get("assets/ajax-content.html", function(html) { 
      // append the "ajax'd" data to the table body 
      $("table tbody").append(html); 
      // let the plugin know that we made a update 
      // updateAll ensures sorting is updated as well 
      $("table").trigger("updateAll"); 
      // set sorting column and direction, this will sort on the first and third column 
      var sorting = [[2, 1], [0, 0]]; 
      // sort on the first column 
      $("table").trigger("sorton", [sorting]); 
     }); 
     return false; 
    }); 
}); 
+0

Próbowałem go i nie działało, i nie używam żadnego wywołania ajaxowego, robię wiersz przez klonowanie istniejącego wiersza w tabeli może to spowodować problem? – Shaheer

+1

naprawiono !, wystarczy dodać, $ ("twój stół"). Trigger ("appendCache"); – Shaheer

+0

@Shaheer: który wiersz w powyższym skrypcie powinienem dodać $ ("twoja tabela"). Trigger ("appendCache"), aby działał – learnJQueryUI

1

Próbowałeś usunąć ustawienie tablesorter i zainicjować nową sesję tablesorter?

Ponieważ w tablesorter nie wiesz, że dodano nowe wiersze, więc dlaczego nie ustawić nowy tablesorter na stole.

+0

Twój pomysł brzmi nieźle, wypróbuję to. – Shaheer

-1

Jedyny sposób, w jaki mógłbym sprawić, by działał, to zregenerować cały stół (usunąć go, a następnie utworzyć ponownie).

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

Te linie działały idealnie dla mnie. Po przypisaniu HTML uruchamia się właśnie funkcja aktualizacji tabeli.

$('#tblID').html(str); 
$("#tblID").trigger("update"); 

gdzie #tblID jest identyfikator tabeli i str jest html wierszy tabeli przypisanych do tabeli.

Powiązane problemy