[jsp] 페이지네이션 하기
2023. 11. 9. 13:49ㆍJavascript
//페이지네이션 버튼 만들기
function btnMake(res, limit, currentPage) {
let total_page = Math.ceil(res.length / limit); // 올림을 사용하여 전체 페이지 수 계산
var oHtml = '';
var startPage = Math.floor((currentPage - 1) / 5) * 5 + 1;
var endPage = Math.min(startPage + 4, total_page);
// 이전 버튼 추가
if (startPage > 1) {
oHtml += '<button class="pagination-btn" data-page="' + (startPage - 1) + '" type="button">이전</button>';
}
// 5개씩 페이지 버튼 생성
for (var i = startPage; i <= endPage; i++) {
oHtml += '<button class="pagination-btn" data-page="' + i + '" type="button">' + i + '</button>';
}
// 다음 버튼 추가
if (endPage < total_page) {
oHtml += '<button class="pagination-btn" data-page="' + (endPage + 1) + '" type="button">다음</button>';
}
$("#pagination").html(oHtml);
// 페이지 버튼 클릭 이벤트 등록
$(".pagination-btn").on("click", function () {
var page = $(this).data("page");
var startIndex = (page - 1) * limit;
var endIndex = startIndex + limit;
var currentPageData = res.slice(startIndex, endIndex);
updateTable(currentPageData);
// 페이지 버튼을 클릭할 때마다 현재 페이지를 인자로 전달하여 새로운 페이지 버튼을 생성
btnMake(res, limit, page);
});
}
//페이지네이션 버튼을 누르면 데이터 변경
function updateTable(data) {
$(this).parent().remove();
var oHtml = '';
$.each(data, function (i, v) {
oHtml += `<tr><td><input id="123" type="checkbox" class="checkbox" /><label for="idCheck1" class="checkbox-label" onclick="ChangeCheckBox('idCheck1')">체크</label></td><td>${i}</td><td class="tl">${v.forbidden_word}</td></tr>`
});
$("#dataContent").html(oHtml);
}
728x90
'Javascript' 카테고리의 다른 글
[Sheetjs] 1개의 시트에 여러개의 테이블 넣기 (0) | 2023.12.04 |
---|---|
[javascript]sortable 사용법 (0) | 2023.11.20 |
✔️ iframe 페이지 전체 새로고침 (0) | 2023.10.27 |
Day6_VSCODE_JavaScript_이터레이터+이터러블 (1) | 2023.04.12 |
Day6_VSCODE_JavaScript_이벤트 (0) | 2023.04.12 |