Używam DataTables ( datatables.net ) i chciałbym, aby moje pole wyszukiwania znajdowało się poza tabelą (na przykład w moim div nagłówka).
Czy to możliwe ?
jquery
search
datatables
filtering
Athanasios Emmanouilidis
źródło
źródło
$(".dataTables_filter :input").focus().val(value).keypress();
wkeyup
dniu mojego wejścia na około godzinę przed znalezieniem tego. Jednak nigdy nie korzystaj z API… Eleganckie rozwiązanie!Zgodnie z komentarzem @lvkz:
jeśli używasz datatable z wielką
.DataTable()
literą d (zwróci to obiekt Datatable API), użyj tego:czyli odpowiedź @netbrain.
jeśli używasz datatable z małą literą d
.dataTable()
(zwróci to obiekt jquery), użyj tego:źródło
oTable.fnFilter($(this).val());
Dla mnie też pracował,.DataTable()
i ta:oTable.fnFilter($(this).val());
kiedy używasz.dataTable()
Różnica jest w stolicy D. Mam nadzieję, że to pomaga!oTable.api().search($(this).val()).draw();
Może to być przydatne, szczególnie jeśli chcesz również ręcznie kontrolować paginacjęlength
:oTable.api().page.len($(this).val()).draw();
Możesz użyć
sDom
do tego opcji.Domyślnie z wejściem wyszukiwania we własnym div:
Jeśli używasz interfejsu użytkownika jQuery (
bjQueryUI
ustawiony natrue
):Powyższe spowoduje umieszczenie elementu wyszukiwania / filtrującego
input
we własnymdiv
z klasą o nazwie,search-box
która znajduje się poza rzeczywistą tabelą.Mimo że używa swojej specjalnej skróconej składni, może faktycznie przyjąć dowolny HTML, który do niego rzucisz.
źródło
'<"search-box"r><"H"lf>t<"F"ip>'
nie jest pewna, czy istnieje coś gorszegolanguage: { search: "example", searchPlaceholder: "example" }
Ten pomógł mi w przypadku DataTables w wersji 1.10.4, ponieważ jego nowy interfejs API
źródło
Nowsze wersje mają inną składnię:
Należy zauważyć, że w tym przykładzie użyto zmiennej
table
przypisanej podczas pierwszej inicjalizacji zbiorów danych. Jeśli nie masz dostępnej tej zmiennej, po prostu użyj:Od: DataTables 1.10
- Źródło: https://datatables.net/reference/api/search ()
źródło
To powinno działać dla Ciebie: (DataTables 1.10.7)
lub
źródło
Miałem ten sam problem.
Wypróbowałem wszystkie opublikowane alternatywy, ale bez pracy, użyłem niewłaściwego sposobu, ale działał idealnie.
Przykładowe hasło wyszukiwania
kod jQuery
źródło
Chcę dodać jeszcze jedną rzecz do odpowiedzi @ netbrain, istotną w przypadku korzystania z przetwarzania po stronie serwera (patrz serverSide opcja ).
Ograniczanie zapytań wykonywane domyślnie przez dane (patrz opcja searchDelay ) nie ma zastosowania do
.search()
wywołania API. Możesz go odzyskać, używając $ .fn.dataTable.util.throttle () w następujący sposób:źródło
Możesz przenieść element div podczas rysowania tabeli za pomocą
fnDrawCallback
funkcji.źródło
"drawCallback": function (settings) { $(".dataTables_filter").each(function () { $(this).appendTo($(this).parent().siblings(".panel-body")); }); },
W
loadtransajax.php
możesz otrzymać wartość get:źródło
Jeśli używasz JQuery dataTable, musisz po prostu dodać
"bFilter":true
. Spowoduje to wyświetlenie domyślnego pola wyszukiwania poza tabelą i działa dynamicznie zgodnie z oczekiwaniamiźródło