Wpis z mikrobloga

#programowanie #jquery #javascript

Ziomeczki, mam taki prosty skrypt filtrujący w czasie rzeczywistym tabelę o klasie .custom-datatable

<script>
$(document).ready(function(){
$('.custom-datatable').dataTable({
"sDom": "<'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-12'i><'col-md-12 center-block'p>>",
"sPaginationType": "bootstrap",
"bPaginate": false,
"aaSorting": [[1,'asc']],
"oLanguage": {
"sLengthMenu": "Liczba wierszy: _MENU_",
"sZeroRecords": "Nic nie znaleziono",
"sInfo": "Pokazano od _START_ do _END_ wierszy, wszystkich _TOTAL_",
"sInfoEmpty": "Pokazano od 0 do 0 wierszy, wszystkich 0",
"sInfoFiltered": "(filtrowanie spośród _MAX_ wszystkich wierszy)",
"sSearch": "Szukaj",
}
});
});
</script>

Czy da radę przerobić ten skrypt, żeby filtrował tabelę jedynie po kolumnie td o klasie np. .numer tzn.: .custom-datatable .numer

?
  • 11
@resuf: Kiedyś szukałem podobnego rozwiązania i wygląda na to, że DataTable czegoś takiego nie wspiera. Sposobem na obejście tego jest przeiterowanie po nagłówku tabeli przed zainicjowaniem DataTable i wyciągnięcie indeksów kolumn, które posiadają daną klasę. Wtedy mając te indeksy możesz sobie zbudować tablicę, którą wrzucisz ww "aaSorting".
<script>
$(document).ready(function(){
$('.custom-datatable').dataTable({
"sDom": "<'row'<'col-md-6'l><'col-md-6'f>r>t<'row'<'col-md-12'i><'col-md-12 center-block'p>>",
"sPaginationType": "bootstrap",
"bPaginate": false,
"aaSorting": [[1,'asc']],
"oLanguage": {
"sLengthMenu": "Liczba wierszy: MENU",
"sZeroRecords": "Nic nie znaleziono",
"sInfo": "Pokazano od START do END wierszy, wszystkich TOTAL",
"sInfoEmpty": "Pokazano od 0 do 0 wierszy, wszystkich 0",
"sInfoFiltered": "(filtrowanie spośród MAX wszystkich wierszy)",
"sSearch": "Szukaj",
},
"aoColumnDefs": [
{ "bSearchable": false, "aTargets": [ 0 ] },
{ "bSearchable": true, "aTargets": [ 2 ], "sType": "numeric" }
]