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

请求分页显示算法

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

 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条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看