xie1113a 2009-07-30 16:50
浏览 433
已采纳

请求分页显示算法

分页显示算法入下分页列表

 1 2 3 4 5...12

谢谢了!
[b]问题补充:[/b]
谢谢大家的帮助~
实现 以下分页算法
1 2 3 4 5...12
这种格式显示分页链接的算法~~并不是用什么语言实现数据列表

  • 写回答

3条回答 默认 最新

  • iteye_2251 2009-07-31 17:48
    关注

    [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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?