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