Zaadaptowałem następującą stronę internetową do moich potrzeb i dodałem trochę kodu, więc ma teraz menu rozwijane select2 zamiast regularnych menu wyboru (które bardziej lubię). Jednak nie byłem w stanie wymyślić, jak dostosować kod, więc mogę go używać tylko w określonych kolumnach zamiast w każdej kolumnie. Wszelkie wskazówki będą mile widziane.Wyszukiwanie w tabelach danych na konkretnych kolumnach
http://datatables.net/examples/api/multi_filter_select.html (kod I dostosowany)
initComplete: function() {
this.api().columns().every(function() {
var column = this;
var select = $("<select class='searchs2'><option value=''></option></select>")
.appendTo($(column.header()).append())
.on('change', function() {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search(val ? '^'+val+'$' : '', true, false)
.draw();
});
column.data().unique().sort().each(function (d, j)
{ select.append('<option value="'+d+'">'+d+'</option>')});
});
$(".searchs2").select2();
}
także - jeśli istnieje możliwość, aby ukryć generycznym pola wyszukiwania chciałbym ukryć go na górze, jak również i po prostu dostarczyć te pola select2. Dziękuję Ci.
(edytowany zaktualizować poprawkę tak select2 by zainicjować dla każdej listy rozwijanej, ostatni nie został inicjowanie)
I zmodyfikowanej 'this.api() kolumny() każdy (funkcję.() {'to' this.api(). columns ([1,2,5,6], function() {' (i kilka innych odmian) i nie mogę uzyskać składni do zainicjowania, to zdecydowanie wydaje się być rozwiązaniem Będę musiała majstrować przy odrobinie, żeby to zadziałało –
@JeffBSoloWookie, myślę, że David miał na myśli to, że zamiast tego 'this.api(). Columns(). Every (function() { 'użyj tej kolumny this.api(). ([1,2,5,6]). every (function() {.. –
ok - twoja edycja była "trochę zbyt prosta" ... nie mogę uwierzyć, że tego nie widziałem :((Nie sądzę, żebym mógł użyć tablicy z "każdym" jeszcze w miejscu) –