Używam wtyczki jQuery DataTables do sortowania pól tabeli. Moje pytanie brzmi: jak wyłączyć sortowanie dla określonej kolumny? Próbowałem z następującym kodem, ale nie działa:
"aoColumns": [
{ "bSearchable": false },
null
]
Wypróbowałem również następujący kod:
"aoColumnDefs": [
{
"bSearchable": false,
"aTargets": [ 1 ]
}
]
ale to nadal nie przyniosło pożądanych rezultatów.
javascript
jquery
sorting
datatables
usman
źródło
źródło
Odpowiedzi:
Oto, czego szukasz:
źródło
[-1]
, a potem[1]
,[2]
itp? Co to-1
oznacza? Czy indeksowanie kolumn nie rozpoczyna się w1
przypadku dataTables?-1
to indeks liczący od końca tabeli. (-1
to ostatnia kolumna tabeli)-z przykładu DataTables - dane HTML5- * atrybuty - opcje tabeli
Możesz więc użyć
data-orderable="false"
wth
kolumnie, której nie chcesz sortować. Na przykład nie będzie można sortować drugiej kolumny „Awatar” w poniższej tabeli:Zobacz działający przykład pod adresem https://jsfiddle.net/jhfrench/6yxvxt7L/ .
źródło
Aby wyłączyć sortowanie pierwszej kolumny, spróbuj użyć poniższego kodu w pliku danych jquery. Wartość null reprezentuje włączenie sortowania w tym miejscu.
Wyłącz sortowanie według kolumny w jQuery Datatables
źródło
Używając Datatables 1.9.4, wyłączyłem sortowanie dla pierwszej kolumny za pomocą tego kodu:
EDYTOWAĆ:
Możesz wyłączyć, nawet używając
no-sort
klasy na swoim<th>
,i użyj tego kodu inicjalizacji:
EDYCJA 2
W tym przykładzie używam Datables z Bootstrap, po starym wpisie na blogu. Teraz jest jeden link ze zaktualizowanym materiałem na temat stylizacji Datatables za pomocą bootstrap .
źródło
Używam po prostu dodania niestandardowego atrybutu w thead td i kontrolowania sortowania, sprawdzając automatycznie tę wartość attr.
Więc kod HTML będzie
A JavaScript do inicjalizacji zbiorów danych będzie (sam dynamicznie pobierze informacje o sortowaniu z tabeli;)
źródło
data-bSortable
zamiastbSortable
.bSortable
nie jest prawidłowym atrybutem HTML.columnDefs
teraz przyjmuje zajęcia. Powiedziałbym, że jest to preferowana metoda, jeśli chcesz określić kolumny do wyłączenia w znacznikach:Następnie w swoim JS:
źródło
Oto, czego możesz użyć, aby wyłączyć określoną kolumnę:
Więc wszystko, co musisz zrobić, to dodać „orderable”: false do kolumny, której nie chcesz sortować.
źródło
źródło
"bSortable": false, "aTargets": [0]
W przypadku sortowania w jednej kolumnie wyłącz, wypróbuj ten przykład:
W przypadku wielu kolumn wypróbuj ten przykład: wystarczy dodać numer kolumny. Domyślnie zaczyna się od 0
Tutaj tylko
Column 3
działaźródło
Od 1.10.5 po prostu dołącz
w columnDefs i kieruj swoją kolumnę z
Stolik powinien polubić:
źródło
Jeśli ustawisz właściwość FIRST kolumny
orderable
na false, musisz również ustawić domyślnąorder
kolumnę, w przeciwnym razie nie zadziała, ponieważ pierwsza kolumna jest domyślną kolumną porządkową. Poniższy przykład wyłącza sortowanie w pierwszej kolumnie, ale ustawia drugą kolumnę jako domyślną kolumnę kolejności (pamiętaj, że indeksy dataTables są liczone od zera).źródło
Oto
0
indeks kolumny, jeśli chcesz, aby wiele kolumn nie było sortowanych, podaj wartości indeksu kolumn oddzielonecomma(,)
źródło
Aby zaktualizować odpowiedź Bhavisha (która, jak sądzę, dotyczy starszej wersji DataTables i nie działa dla mnie). Myślę, że zmienili nazwę atrybutu. Spróbuj tego:
źródło
data-orderable
... patrz stackoverflow.com/a/32281113/1430996 .data-sortable
również działa, ale nie mogę znaleźć, gdzie jest to udokumentowane.Korzystanie z klasy:
źródło
To działa dla mnie dla jednej kolumny
źródło
Jeśli już musisz ukryć Niektóre kolumny, na przykład ukrywam kolumnę z nazwiskiem. Musiałem tylko połączyć fname, lname, więc wykonałem zapytanie, ale ukryłem tę kolumnę z przodu. Modyfikacje w opcji Wyłącz sortowanie w takiej sytuacji to:
Zauważ, że mam tutaj funkcję ukrywania
Następnie połączyłem to w
"aoColumnDefs"
źródło
Użyj poniższego kodu, aby wyłączyć porządkowanie w pierwszej kolumnie:
Aby wyłączyć domyślne porządkowanie, możesz również użyć:
źródło
Możesz bezpośrednio użyć metody .notsortable () na kolumnie
źródło
Istnieją dwa sposoby, jeden jest definiowany w html podczas definiowania nagłówków tabeli
Innym sposobem jest użycie javascript, na przykład masz tabelę
następnie,
źródło
możesz również użyć indeksu ujemnego w następujący sposób:
źródło
Kod będzie wyglądał następująco:
źródło
Oto odpowiedź!
targets
to numer kolumny, zaczyna się od 0źródło
ustaw klasę "no-sort" w tabeli, a następnie dodaj css .no-sort {pointer-events: none! kursor: domyślny! ważny; obraz-tła: brak! ważny; } przez to ukryje strzałkę updown i wyłączy zdarzenie w głowie.
źródło