模拟ASP.Net分页的分页导航

 获得如下分页导航   |<< < ... 9 10 11 12 13 14 15 16  ... > >>| 

习惯了C的带类型编程,不大习惯JS的无类型编程。搞了半天才发现是类型错误...-  -  还是都取下整比较保险


  //containerId 导航的目标容器,建议使用span标签
        //url 默认为XXX.XX?pagenum=
        //curPage 当前的页码
        //maxSection 最大的分段数(一段里面最大的页数)
        //totalPage 总共的页数
        function Navigate(containerId,url,curPage,maxSection, totalPage) {
            //到第一页符号
            var first = "|<<";
            //到最后一页符号
            var last = ">>|";
            //前一页符号
            var back = "<"
            //下一页符号
            var next = ">";
            //非法页码处理 
            if (curPage > totalPage || curPage < 0) {
                curPage = 1;
            }
            //获得导航容器父元素
            var containerObj = document.getElementById(containerId);
            //获得当前页所在的分段号(调试了老半天原来是类型问题,居然是float型)
            var curSection = Math.floor((curPage - 1) / maxSection + 1);
            //获得最后一个分段的号
            var lastSection = Math.floor((totalPage - 1) / maxSection + 1);
            var html = "";
            //当前页不是第1页,添加到首页,和前一页
            if (curPage > 1) {
                html += "<a href='" + url + "1'>" + first + "</a> ";
                html += "<a href='" + url + (curPage - 1) + "'>" + back + "</a> ";
            }
            //当前不是第一段,则显示上一段符号
            if (curSection > 1) {
                //获得上一段的第一页号码
                var backSectionFirstPage = (curSection-2) * maxSection + 1;
                html += "<a href='" + url + backSectionFirstPage + "'>...</a> ";
            }
            //当前段的第一页号码
            var curSectionFirst = (curSection - 1) * maxSection + 1;
            //当前段的第最后一页号码
            var curSecitonLast = curSection * maxSection;
            //输出当前段的页码
            for (var i = curSectionFirst; i <= curSecitonLast && i <= totalPage; i++) {
                if (curPage == i) {
                    html += "<a style = 'color:Red' href='" + url + i + "'>" + i + "</a> ";
                }
                else { 
                    html += "<a href='" + url + i + "'>" + i + "</a> ";
                }
            }
            //当前不是最后一段,则显示下一段符号
            if (curSection < lastSection) {
                //获得下一段的第一页号码
                var nextSectionFirstPage = curSection * maxSection + 1;
                html += "<a href='" + url + nextSectionFirstPage + "'>...</a> ";
            }
            //当前页不是第最后页,添加下一页和最后一页符号
            if (curPage != totalPage) {
                html += "<a href='" + url + (curPage + 1) + "'>" + next + "</a> ";
                html += "<a href='" + url + totalPage + "'>" + last + "</a> ";
            }
            containerObj.innerHTML = html;
        }


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。