Каждые 10 строк моей таблицы я хочу отображать отдельно.
В моем проекте Django есть таблица, данные в которую поступают из базы данных. Там могут быть сотни строк. Я не могу отобразить их все на одной странице. Я хочу отобразить мои таблицы по 10 строк для каждой. У меня есть две кнопки для следующей и предыдущей строки. Могу ли я сделать это с помощью jquery или какого-нибудь кода на python?
index.html
<table class="table" border=1>
<thead>
<tr>
<th>Full Name</th>
<th>Company</th>
<th>Email</th>
<th>Phone Number</th>
<th>Note</th>
<th>ID</th>
<th>Item Barcode</th>
</tr>
</thead>
<tbody>
{% for x in thelist %}
<tr>
<td>{{x.full_name}}</td>
<td>{{x.company}}</td>
<td>{{x.email}}</td>
<td>{{x.phone_number}}</td>
<td>{{x.note}}</td>
<td>{{x.id}}</td>
<td>{{x.item_barcode}}</td>
</tr>
{% endfor %}
</tbody>
</table>
<button type="button" class="btn btn-primary" name="button">Next</button>
<button type="button" class="btn btn-primary" name="button">Previous</button>
Для этого можно использовать таблицы данных начальной загрузки:
<link rel="stylesheet" href="https://cdn.datatables.net/1.12.1/css/jquery.dataTables.min.css">
<table class="table" border=1 id='mydatatable'>
<thead>
<tr>
<th>Full Name</th>
<th>Company</th>
<th>Email</th>
<th>Phone Number</th>
<th>Note</th>
<th>ID</th>
<th>Item Barcode</th>
</tr>
</thead>
<tbody>
{% for x in thelist %}
<tr>
<td>{{x.full_name}}</td>
<td>{{x.company}}</td>
<td>{{x.email}}</td>
<td>{{x.phone_number}}</td>
<td>{{x.note}}</td>
<td>{{x.id}}</td>
<td>{{x.item_barcode}}</td>
</tr>
{% endfor %}
</tbody>
</table>
<script src='https://cdn.datatables.net/1.12.1/js/jquery.dataTables.min.js'></script>
<script>
$(document).ready(function () {
$('#mydatatable').DataTable();
});
</script>
Для получения дополнительной информации вы можете обратиться к https://datatables.net/
Вы можете использовать rowIndex
и два класса (например, .active
и .visible
) для первой видимой строки и стилизации через CSS:
Установите класс .active
на первой строке, которая должна быть видимой. На следующем шаге (в лучшем случае в отдельной функции) удалите класс .visible
со всех строк, а затем установите класс .visible
столько раз, сколько вы определили с помощью константы visible_rows
, начиная с активной строки.
В обработчиках событий для #next
и #previous
просто сдвиньте класс .active
на количество видимых строк, если в этом направлении остались строки, и вызовите функцию showRows()
.
Пример работы: