2009-06-04 10 views
18

Jak utworzyć tabelę do sortowania przy użyciu javascript bez ładowania danych przez AJAX? Dokładniej, szukam rozwiązania, które daje mi następujące:Jak utworzyć tabelę HTML do sortowania za pomocą javascript bez ładowania danych przez AJAX?

  • Works na zwykły starej tabeli HTML
  • Sprawia kolumny Sortable stosując naturalne porównanie
  • Czy agnostyk technologii server-side (powinny być przenośne, niezależnie od tego, czy tabele są renderowane przez JSP, PHP itp.).
  • Wdrożone najlepiej jako rozszerzenie do JQuery, którego już używam w konkretnym projekcie, od razu chciałbym zastosować to. Jestem otwarty na sugestie dotyczące innych ram javascript, takich jak YUI, ale będzie musiał grać dobrze z JQuery.

Co ja nie szukam:

  • rozwiązanie, które wymaga ode mnie wypełnienia danych za pośrednictwem wywołania AJAX. Chciałbym zastosować to w projekcie, który ma kilka zwykłych starych tabel HTML dla rzeczy takich jak wyniki wyszukiwania, które chciałbym szybko posortować bez przepisywania kodu po stronie serwera.
  • Przywoływanie.
  • Filtrowanie.
  • Możliwość określenia arbitralnej logiki porównania.

Celowo pomijam nasz stos technologii dla konkretnego projektu, nad którym obecnie pracuję, ale uwzględnię go, jeśli ludzie uznają to za absolutnie konieczne. Ponownie, najbardziej interesują mnie rozwiązania, które nie dotyczą niczego na serwerze. Istnieje mnóstwo projektów napisanych we wszystkich rodzajach języków, które mogłyby posłużyć odrobinie miłości w tej dziedzinie.

Odnośnie kwestii podobnych, istniejących pytania na przepełnienie stosu

zrobiłem kilka grzebie się, a najbliżej pytanie mogę znaleźć do kopalni this one. Moje wymagania są jednak nieco inne, dlatego postanowiłem zadać nowe pytanie.

Odpowiedz

20

Wtyczka jquery tablesorter działa bardzo ładnie.

+0

zainteresowani, aby dowiedzieć się, dlaczego zostało to odrzucone. –

3

Wypróbuj sortable.js.

+0

Dość stara, ale bardzo łatwa do dostosowania i wykonania pracy. Sweet –

+0

@RedFilter Używam pliku sortable.js, ale nie działa. Patrz [tutaj] (http://stackoverflow.com/questions/24386439/why-ajax-response-is-not-in-sortable-manner?noredirect = 1 # comment37718205_24386439) –

1

Wraz z odpowiedzią OrbMan, możesz spojrzeć na wikibits.js, która jest wersją MediaWiki kodu sortującego. Nie wymaga żadnego AJAX ani specjalnego kodu kleju, tylko prosta klasa (sortable) do oznaczania tabel do sortowania.

Kod jest swobodnie licencjonowany i używany w produkcji na stronach Wikimedii.

EDYCJA: MediaWiki przełączyło się na wersję Tablesorter, począwszy od 86088 (kwiecień 2011).

4

Tablesorter to wtyczka jQuery, która działa podobnie do sortable.js, zamieniając zwykłą tabelę HTML w sortowalną.

+2

pokonał cię przez kilka sekund: P –

+1

Przeklęty Antony Trupe! –

1

Naprawdę podoba mi się tristen's tablesort. Jest wolny od zależności, lekki i nie wymaga wiele stylizacji/nie zadziewa z własnym stylem!

1

1-Pobierz sorttable.js

2-Zawierać sorttable.js, umieszczając link do niego w głowie swojej stronie tak:

3-Mark stole jako sortowalny, nadając mu klasę "do sortowania":

<table class="sortable"> 
+0

znajduje się obecnie pod adresem: http://www.kryogenix.org/code/browser/sorttable/ Przydaje się, jeśli nie chcesz używać lub nie używasz jquery. – pdwalker