Witam,
problem mam co najmniej dziwny. Chodzi o to, że mam tabelkę, z której robię datatable (korzystam z tego: http://www.datatables.net/ i z bootstrapa). Wszystko działa ładnie i bez problemów, ale do czasu. Kiedy w parametrze DataTable podaję język, mimo, że język wczytuje ładnie, nie działa wyszukiwanie w kolumnach (z tego przykładu http://www.datatables.net/examples/api/multi_filter.html).
Nie wiem co może być źle. Albo coś z tą biblioteką jest nie tak, albo ja po kilku godzinach już gorzej widzę :)
Kod:
<script type="text/javascript">
$(document).ready(function () {
$('#table tfoot th').each(function () {
if ($('#table thead th').eq($(this).index()).attr('id') != 'actions') {
var title = $('#table thead th').eq($(this).index()).text();
$(this).html('<input type="text" placeholder="Szukaj" class="form-control" />');
}
});
var table = $('#table').DataTable({
columns: [
{ "orderable": true, "searchable": true },
{ "orderable": true, "searchable": true },
{ "orderable": true, "searchable": true },
{ "orderable": false, "searchable": false }
],
paging: false,
order: [[0, "asc"]],
saveState: true,
language: {
url: '@Url.Content("/Scripts/plugins/datatables/datatables." + System.Threading.Thread.CurrentThread.CurrentUICulture.Name.ToLowerInvariant() + ".txt")'
}
});
table.columns().eq(0).each(function (colIdx) {
$('input', table.column(colIdx).footer()).on('keyup change', function () {
table
.column(colIdx)
.search(this.value)
.draw();
});
});
});
</script>
A to tabelka (robię w ASP.NET MVC i jest troszkę razora)
<table class="table table-bordered table-striped table-hover" id="table">
<thead>
<tr>
<th class="col-md-4">
Nazwa
</th>
<th style="text-align:center" class="col-md-3">
Liczba grup aktualnie
</th>
<th style="text-align:center" class="col-md-3">
Liczba grup łącznie
</th>
<th style="text-align:center" class="col-md-2" id="actions">Akcje</th>
</tr>
</thead>
<tfoot>
<tr>
<th>
Nazwa
</th>
<th>
Liczba grup aktualnie
</th>
<th>
Liczba grup łącznie
</th>
<th></th>
</tr>
</tfoot>
<tbody>
@if (Model.Count() > 0)
{
foreach (Faculty faculty in Model.OrderBy(a => a.Name))
{
<tr>
<td>
@Html.DisplayFor(model => faculty.Name)
</td>
<td style="text-align:center">
@faculty.Groups.Where(a => GroupsHelper.GetCurrentGroupsIds().Contains(a.Id)).Count()
</td>
<td style="text-align:center">
@faculty.Groups.Count()
</td>
<td style="text-align:center">
<a href="@Url.Action("Details", "Faculties", new { id = @faculty.Id })" class="btn btn-default btn-xs"><span class="glyphicon glyphicon-folder-open"></span></a>
<a href="@Url.Action("Edit", "Faculties", new { id = @faculty.Id })" class="btn btn-primary btn-xs"><span class="glyphicon glyphicon-edit"></span></a>
<a href="@Url.Action("Remove", "Faculties", new { id = @faculty.Id })" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-remove"></span></a>
</td>
</tr>
}
}
else
{
<tr>
<td colspan="4" style="text-align: center">
Nie znaleziono pozycji do wyświetlenia
</td>
</tr>
}
</tbody>
</table>
No i do kompletu screeny:
Tutaj działa:
http://images68.fotosik.pl/382/1166d0ea62d3c344.png
http://images67.fotosik.pl/384/894b3e5a50cfc59d.png
a tutaj nie działa
http://images67.fotosik.pl/384/3b42c271abccadc1.png
http://images69.fotosik.pl/383/518c38e81d338195.png
Tak jak mówię, wszystko działa, dopóki nie dołączę atrybutu "language" w inicjalizatorze. Ktoś wie co może być z tym nie tak?
Żeby było dziwniej, wyszukiwanie w tym polu nad tabelą działa cały czas.
A przy okazji, wie ktoś jak ustawić tą bibliotekę, żeby przy saveState zapisywała też wartości z filtrów każdej kolumny? Teraz zapisuje tylko tego głównego searcha nad tabelą.