3 回答

TA貢獻1719條經驗 獲得超6個贊
在這里,您要一次顯示 5 頁。因此,對于 5 頁,您將值存儲在名為stepSize的變量中,因此您只需將其保持為 5。
您在每一步中增加 stepSize 的值,您不應該增加它,只保留 5。
我不明白你的第一個 for 循環的目的。stepCount 做什么,為什么需要。
因此,可以使用以下代碼簡單地編輯您的代碼:
var length = response.length;
console.log(length);
function pagination(length){
var size = Math.ceil(length/10);
var pageDiv = $('.pagination');
var pageDivData = "";
pageDivData += "<a href='javascript:void(0)' id='firstPage' class='firstPage'>«</a>";
var stepSize = 5;
for(var i=id; i<=stepSize; i++){
if(id == i){
pageDivData +="<a href='javascript:void(0)' class='pageNo active' id='"+i+"'>"+i+"</a>";
}else{
pageDivData +="<a href='javascript:void(0)' class='pageNo' id='"+i+"'>"+i+"</a>";
}
}
pageDivData += "<a href='javascript:void(0)'>...</a>";
pageDivData += "<a href='javascript:void(0)' class='pageNo id='"+size+"'>"+(size)+"</a>";
if(id!=size){
pageDivData += "<a href='javascript:void(0)' id='lastPage'>»</a>";
}
pageDiv.html(pageDivData);
}
pagination(length);

TA貢獻1946條經驗 獲得超3個贊
我對上面的代碼做了一些改動。通過使用此代碼,用戶可以顯示下 4 個(如果可用)頁面、前 4 個(如果可用)和當前頁面。
第一頁鏈接和上一頁鏈接與最后一頁和下一頁鏈接相同。
因此,一次顯示總共 9 個頁面和 4 個額外鏈接。
該代碼在 React JS 中運行
import React from 'react';
import * as GlobalConfig from '../../providers/globals/config';
import { Link } from "react-router-dom";
function Pagenation(props) {
const loadPage = (page) => {
props.loadPage(page);
};
const totalEntries = props.paginationObj.totalEntries;
const totalPage = props.paginationObj.totalPage;
const currentPage = props.paginationObj.currentPage;
const nextPage = props.paginationObj.nextPage;
const perPage = GlobalConfig.perPage;
const start = (props.paginationObj.skipEntries + 1);
const end = ((props.paginationObj.skipEntries + perPage) < totalEntries) ? (props.paginationObj.skipEntries + perPage) : totalEntries;
const PagesLink = () => {
let pages = [];
// first & next page links
pages.push(
<li key={'first'} onClick={(e) => loadPage(1)} className={(currentPage === 1) ? 'paginate_button page-item previous disabled' : 'paginate_button page-item previous'}>
<Link to="#" aria-controls="listingTable" data-dt-idx="0" className="page-link"><< First</Link>
</li>
);
pages.push(
<li key={'previous'} onClick={(e) => loadPage(((currentPage - 1) < 1) ? 1 : currentPage - 1)} className={(currentPage === 1) ? 'paginate_button page-item previous disabled' : 'paginate_button page-item previous'}>
<Link to="#" aria-controls="listingTable" data-dt-idx="0" className="page-link">< Previous</Link>
</li>
);
// display previous pages links
let previousLinks = currentPage - 4;
for (let i = previousLinks; i <= currentPage; i++) {
if (i < currentPage && i > 0) {
pages.push(
<li key={i} onClick={(e) => loadPage(i)} className={(currentPage === i) ? 'paginate_button page-item active' : 'paginate_button page-item'}>
<Link to="#" aria-controls="listingTable" data-dt-idx="1" className="page-link">{i}</Link>
</li>
);
}
}
// display next pages links
let nextLinks = (currentPage < totalPage) ? (currentPage + 4) : currentPage;
for (let i = currentPage; i <= nextLinks; i++) {
if (i <= totalPage) {
pages.push(
<li key={i} onClick={(e) => loadPage(i)} className={(currentPage === i) ? 'paginate_button page-item active' : 'paginate_button page-item'}>
<Link to="#" aria-controls="listingTable" data-dt-idx="1" className="page-link">{i}</Link>
</li>
);
}
}
// next & last page links
pages.push(
<li key={'next'} onClick={(e) => loadPage(((currentPage + 1) > totalPage) ? totalPage : currentPage + 1)} className={(nextPage) ? 'paginate_button page-item next' : 'paginate_button page-item next disabled'}>
<Link to="#" aria-controls="listingTable" data-dt-idx="2" className="page-link">Next ></Link>
</li>
);
pages.push(
<li key={'last'} onClick={(e) => loadPage(totalPage)} className={(nextPage) ? 'paginate_button page-item next' : 'paginate_button page-item next disabled'}>
<Link to="#" aria-controls="listingTable" data-dt-idx="2" className="page-link">Last >></Link>
</li>
);
return pages;
}
return (
<>
{totalEntries > 0 &&
<div className="pagenation-foot d-flex align-items-center justify-content-between">
<div className="totlecountpage"> <span id="displayed-record">Showing {start}-{end}</span> of {totalEntries} entries</div>
<div className="countingpaging">
<div className="dataTables_paginate paging_simple_numbers" id="listingTable_paginate">
<ul className="pagination">
<PagesLink />
</ul>
</div>
</div>
</div>
}
</>
)
}
export default Pagenation;
添加回答
舉報