<%--
Created by IntelliJ IDEA.
User: 王磊
Date: 2023/5/12
Time: 16:33
To change this template use File | Settings | File Templates.
--%>
<%@ page import="shiyan.student" %>
<%@ page import="shiyan.AllMethods" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="UTF-8">
<title>Data Table with Pagination</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
.container {
max-width: 800px;
margin: auto;
padding: 20px;
}
/* 表格样式 */
table {
border-collapse: collapse;
width: 100%;
}
th, td {
text-align: left;
padding: 8px;
border-bottom: 1px solid #ddd;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}
th {
background-color: #4CAF50;
color: white;
}
/* 分页样式 */
.pagination {
display: inline-block;
}
.pagination a {
color: black;
float: left;
padding: 8px 16px;
text-decoration: none;
transition: background-color .3s;
border: 1px solid #ddd;
margin: 0 4px;
}
.pagination a.active {
background-color: #4CAF50;
color: white;
border: 1px solid #4CAF50;
}
.pagination a:hover:not(.active) {
background-color: #ddd;
}
.btn {
display: inline-block;
padding: 8px 16px;
background-color: #4CAF50;
color: #fff;
font-size: 16px;
border: none;
cursor: pointer;
border-radius: 4px;
}
.btn:hover {
background-color: #3E8E41;
}
.btn:active {
background-color: #3E8E41;
transform: translateY(1px);
}
.my-link {
color: white;
text-decoration: none;
transition: color 0.3s ease-in-out;
}
.my-link:hover {
color: #1E90FF;
}
</style>
</head>
<%
AllMethods allMethods=new AllMethods();
student[] students=allMethods.AllStudents();
int i=0;
%>
<body>
<div class="container">
<h1>学生信息详情页面</h1>
<a href="add.jsp">添加学生点此处</a>
<!-- 数据表格 -->
<table id="myTable">
<thead>
<tr>
<th>学生学号</th>
<th>学生姓名</th>
<th>学生性别</th>
<th>学生生日</th>
<th>action</th>
</tr>
</thead>
<tbody>
<%
for (i=0;i<students.length;i++)
{%>
<tr>
<td><%=students[i].id%></td>
<td><%=students[i].name%></td>
<td><%=students[i].sex%></td>
<td><%=students[i].birthday%></td>
<td><button class="btn"><a class="my-link" href="edit.jsp?id=<%=students[i].id%>">编辑</a></button><button class="btn"><a class="my-link" href="del.jsp?id=<%=students[i].id%>">删除</a></button></td>
</tr>
<%
}
%>
</tbody>
</table>
<!-- 分页 -->
<div class="pagination">
<a href="#" id="prev">«</a>
<a href="#" class="active">1</a>
<%
int NumberOfPages=((students.length-4)/5)+1;
for (int j=0;j<NumberOfPages;j++)
{
%>
<a href="#"><%=1+j+1%></a>
<%
}
%>
<a href="#" id="next">»</a>
</div>
</div>
<script>
// 获取表格和分页元素
var table = document.getElementById("myTable");
var prevBtn = document.getElementById("prev");
var nextBtn = document.getElementById("next");
var paginationLinks = document.getElementsByClassName("pagination")[0].getElementsByTagName("a");
// 每页显示的行数
var rowsPerPage = 4;
// 当前页码
var currentPage = 1;
// 计算总页数
var totalRows = table.getElementsByTagName("tbody")[0].getElementsByTagName("tr").length;
var totalPages = Math.ceil(totalRows / rowsPerPage);
// 显示指定页码的表格内容
function showPage(page) {
// 计算页码对应的数据行范围
var startRow = (page - 1) * rowsPerPage;
var endRow = startRow + rowsPerPage;
// 显示对应页码的数据行,隐藏其他行
var rows = table.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
for (var i = 0; i < rows.length; i++) {
if (i >= startRow && i < endRow) {
rows[i].style.display = "table-row";
} else {
rows[i].style.display = "none";
}
}
// 更新分页链接的样式
for (var j = 0; j < paginationLinks.length; j++) {
if (j == page) {
paginationLinks[j].classList.add("active");
} else {
paginationLinks[j].classList.remove("active");
}
}
// 更新当前页码
currentPage = page;
// 禁用/启用上一页和下一页按钮
if (currentPage == 1) {
prevBtn.classList.add("disabled");
} else {
prevBtn.classList.remove("disabled");
}
if (currentPage == totalPages) {
nextBtn.classList.add("disabled");
} else {
nextBtn.classList.remove("disabled");
}
}
// 初始化显示第一页的表格内容
showPage(currentPage);
// 绑定上一页和下一页按钮的点击事件
prevBtn.addEventListener("click", function (event) {
event.preventDefault();
if (currentPage > 1) {
showPage(currentPage - 1);
}
});
nextBtn.addEventListener("click", function (event) {
event.preventDefault();
if (currentPage < totalPages) {
showPage(currentPage + 1);
}
});
// 绑定分页链接的点击事件
for (var k = 0; k < paginationLinks.length; k++) {
paginationLinks[k].addEventListener("click", function (event) {
event.preventDefault();
var page = parseInt(this.innerText);
if (!isNaN(page)) {
showPage(page);
}
});
}
</script>
</body>
</html>