分页显示算法入下分页列表
1 2 3 4 5...12
谢谢了!
[b]问题补充:[/b]
谢谢大家的帮助~
实现 以下分页算法
1 2 3 4 5...12
这种格式显示分页链接的算法~~并不是用什么语言实现数据列表
分页显示算法入下分页列表
1 2 3 4 5...12
谢谢了!
[b]问题补充:[/b]
谢谢大家的帮助~
实现 以下分页算法
1 2 3 4 5...12
这种格式显示分页链接的算法~~并不是用什么语言实现数据列表
[code="javascript"]
//生成页导航链接
var makePageLinks = function(pageIndex, pageSize, pageCount, startPageIndex, linksCount){
var links = [];
var i = 0;
var _createLink = function(text, index, pageSize){
var link = document.createElement("span");
var href = "?page=" + index + "&page_size=" + pageSize;
link.setAttribute('href', href);
link.style.cursor = "pointer";
link.appendChild(document.createTextNode(text));
bindPageLinkClickHandler(link, index);
return link;
}
if (startPageIndex != 1) {
var link = _createLink("Prev", pageIndex - 1, pageSize);
links.push(link);
links.push(document.createTextNode("..."));
}
while (i < linksCount && startPageIndex + i <= pageCount) {
var index = startPageIndex + i;
var link = _createLink(index, index, pageSize);
if (index == pageIndex)
link.style.color = "red";
links.push(link);
i++;
}
if ((startPageIndex + linksCount - 1) < pageCount) {
links.push(document.createTextNode("..."));
var link = _createLink("Next", pageIndex + 3, pageSize);
links.push(link);
}
return links;
}
//更新页导航链接
var updatePageLinks = function(rowsCount, pageSize, pageIndex){
var pages_count = Math.ceil(rowsCount / pageSize);
var startPageIndex = 1;
var linksCount = 5; //生成的链接数
var maxStartPageIndex = pages_count - linksCount + 1;
if (pages_count > linksCount) {
startPageIndex = pageIndex;
if (startPageIndex > maxStartPageIndex) {
startPageIndex = maxStartPageIndex;
}
else {
var halfLinksCount = Math.floor(linksCount / 2);
while (startPageIndex > 1 && (pageIndex - startPageIndex) < halfLinksCount) {
startPageIndex--;
}
}
}
var links = makePageLinks(pageIndex, pageSize, pages_count, startPageIndex, linksCount);
var pageLinksContainer = document.getElementById($PAGE_LINKS);
pageLinksContainer.innerHTML = "";
for (var i = 0, l = links.length; i < l; i++) {
pageLinksContainer.appendChild(links[i]);
}
}
[/code]