欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

javascript分页代码实例分享(js分页)_javascript技巧

程序员文章站 2022-05-23 15:54:35
...
调用:

复制代码 代码如下:

var pageChange = function (index) {
var html = pager("divid", index, 5, 1000, pageChange, { showGoTo: false, showFirst: false });
}

实现:

复制代码 代码如下:

pager = function (divPager, pageIndex, pageSize, totalCount, pageChange, opt) {

var theOpt = {
barSize: 5, //分页条显示的页码数
barTemplate: "{bar} 共{totalPage}页{totalCount}条 {goto}", //显示模板
autoHide: true, //是否自动隐藏
showFirst: true, //在totalPage>barSize时是自动否显示第一页链接
showLast: true, //在totalPage>barSize时是自动否显示最后一页链接
showGoTo: true, //是否显示GoTo
autoHideGoTo: true //如果太少是否自动隐藏GoTo
};

if (opt) {
if (opt.barSize)
theOpt.barSize = opt.barSize;
if (opt.barTemplate)
theOpt.barTemplate = opt.barTemplate;
if (opt.autoHide == false)
theOpt.autoHide = false;
if (opt.showFirst == false)
theOpt.showFirst = false;
if (opt.showLast = false)
theOpt.showLast = false;
if (opt.showGoTo == false)
theOpt.showGoTo = false;
if (opt.autoHideGoTo == false)
theOpt.autoHideGoTo = false;
}
var handles = window.myPagerChanges = (function (x) { return x; } (window.myPagerChanges || {}));

if (!myPagerChanges[divPager]) myPagerChanges[divPager] = pageChange;

var startPage = 0; //分页条起始页
var endPage = 0; //分页条终止页
var showFirst = true;
var showLast = true;


if (isNaN(pageIndex)) {
pageIndex = 1;
}
pageIndex = parseInt(pageIndex);
if (pageIndex pageIndex = 1;
if (pageIndex * pageSize > totalCount) {
pageIndex = Math.ceil(totalCount / pageSize);
}

if (totalCount == 0) { //如果没数据
document.getElementById(divPager).innerHTML = "";
return "";
}

var totalPage = Math.ceil(totalCount / pageSize);
if (theOpt.autoHide && totalCount document.getElementById(divPager).innerHTML = "";
return "";
}

if (totalPage startPage = 1;
endPage = this.totalPage;
theOpt.showLast = theOpt.showFirst = false;
}
else {
if (pageIndex startPage = 1;
endPage = theOpt.barSize;
theOpt.showFirst = false;
}
else if (pageIndex > (totalPage - theOpt.barSize / 2)) { //最后几页时
startPage = totalPage - theOpt.barSize + 1;
endPage = totalPage;
theOpt.showLast = false;
}
else { //中间的页时
startPage = pageIndex - Math.ceil(theOpt.barSize / 2) + 1;
endPage = pageIndex + Math.floor(theOpt.barSize / 2);
}
if (totalPage theOpt.showLast = theOpt.showFirst = false;
}
}

function _getLink(index, txt) {
if (!txt) txt = index;
return "" + txt + "";
}

var barHtml = ""; //分页条
barHtml += pageIndex == 1 ? "" : _getLink(pageIndex - 1, "上一页");
if (theOpt.showFirst) {
barHtml += _getLink(1) + "...";
}
for (var index = startPage; index
if (index == pageIndex) {
barHtml += "" + index + "";
}
else {
barHtml += _getLink(index);
}
}
if (theOpt.showLast) {
barHtml += "..." + _getLink(totalPage);
}
barHtml += pageIndex == totalPage ? "" : _getLink(pageIndex + 1, "下一页");

var gotoHtml = ""; //goto框及按钮
if (theOpt.showGoTo && theOpt.barTemplate.indexOf("{goto}") > 0) {
if ((theOpt.autoHideGoTo && totalPage > 15) || theOpt.autoHideGoTo == false) {
var txtid = divPager + "_goIndex";
var indexVal = "document.getElementById(\"" + txtid + "\").value";
gotoHtml += "";
gotoHtml += " ";
}
}

//替换模板
var pagerHtml = theOpt.barTemplate.replace("{bar}", barHtml)
.replace("{totalCount}", totalCount)
.replace("{pageIndex}", pageIndex)
.replace("{totalPage}", totalPage)
.replace("{goto}", gotoHtml);

document.getElementById(divPager).innerHTML = pagerHtml;
return pagerHtml;
};