pagination.js
function pagination(name,page,pageCount,perPageCount,perCount) { //初始化属性
this.name = name; //对象名称
this.page = page; //当前页数
this.pageCount = pageCount; //总页数
this.argName = 'page'; //参数名
this.showTimes = 1; //打印次数
this.perPageCount = perPageCount; //每页显示条数
this.perCount = perCount; //显示出的跳转页码数,如[1][2][3][4][5][6][7][8][9][10]
}
pagination.prototype.checkPages = function(){ //进行当前页数和总页数的验证
if (isNaN(parseInt(this.page))) this.page = 1;
if (isNaN(parseInt(this.pageCount))) this.pageCount = 1;
if (this.page < 1) this.page = 1;
if (this.pageCount < 1) this.pageCount = 1;
if (this.page > this.pageCount) this.page = this.pageCount;
this.page = parseInt(this.page);
this.pageCount = parseInt(this.pageCount);
}
pagination.prototype.createHtml=function(mode){
var strHtml = '', prevPage = this.page - 1, nextPage = this.page + 1;
if (mode == '' || typeof(mode) == 'undefined') mode = 0;
switch (mode) {
case 0 :
if (prevPage < 1) {
strHtml += '<span title="首页">首页</span>';
strHtml += '<span title="上页">上页</span>';
} else {
strHtml += '<span title="首页"><a href="javascript:toPage(1);">首页</a></span>';
strHtml += '<span title="上页"><a href="javascript:toPage(' + prevPage + ');">上页</a></span>';
}
if (this.page % this.perCount ==0) {
var startPage = this.page - this.perCount + 1;
} else {
var startPage = this.page - this.page % this.perCount + 1;
}
if (startPage > this.perCount) strHtml += '<span title="前'+this.perCount+'页"><a href="javascript:toPage(' + (startPage - 1) + ');">...</a></span>';
for (var i = startPage; i < startPage + this.perCount; i++) {
if (i > this.pageCount) break;
if (i == this.page) {
strHtml += ''+ i + '';
} else {
strHtml += '<a href="javascript:toPage(' + i + ');">' + i + '</a>';
}
}
if (this.pageCount >= startPage + this.perCount) strHtml += '<span title="后'+this.perCount+'页"><a href="javascript:toPage(' + (startPage + this.perCount) + ');">...</a></span>';
if (nextPage > this.pageCount) {
strHtml += '<span title="后页">后页</span>';
strHtml += '<span title="尾页">尾页</span>';
} else {
strHtml += '<span title="后页"><a href="javascript:toPage(' + nextPage + ');">后页</a></span>';
strHtml += '<span title="尾页"><a href="javascript:toPage(' + this.pageCount + ');">尾页</a></span>';
}
break;
case 9 :
if (prevPage < 1) {
strHtml += '<span title="首页">首页</span>';
strHtml += '<span title="上页">上页</span>';
} else {
strHtml += '<span title="首页"><a href="javascript:goPage(1);">首页</a></span>';
strHtml += '<span title="上页"><a href="javascript:goPage(' + prevPage + ');">上页</a></span>';
}
if (this.page % this.perCount ==0) {
var startPage = this.page - this.perCount + 1;
} else {
var startPage = this.page - this.page % this.perCount + 1;
}
if (startPage > this.perCount) strHtml += '<span title="前'+this.perCount+'页"><a href="javascript:goPage(' + (startPage - 1) + ');">...</a></span>';
for (var i = startPage; i < startPage + this.perCount; i++) {
if (i > this.pageCount) break;
if (i == this.page) {
strHtml += ''+ i + '';
} else {
strHtml += '<a href="javascript:goPage(' + i + ');">' + i + '</a>';
}
}
if (this.pageCount >= startPage + this.perCount) strHtml += '<span title="后'+this.perCount+'页"><a href="javascript:goPage(' + (startPage + this.perCount) + ');">...</a></span>';
if (nextPage > this.pageCount) {
strHtml += '<span title="后页">后页</span>';
strHtml += '<span title="尾页">尾页</span>';
} else {
strHtml += '<span title="后页"><a href="javascript:goPage(' + nextPage + ');">后页</a></span>';
strHtml += '<span title="尾页"><a href="javascript:goPage(' + this.pageCount + ');">尾页</a></span>';
}
break;
default :
strHtml = 'Javascript showPage Error: not find mode ' + mode;
break;
}
return strHtml;
}
pagination.prototype.printHtml = function(mode){ //显示html代码
this.checkPages();
this.showTimes += 1;
document.write('<span id="pages_' + this.name + '_' + this.showTimes + '" class="pagination"></span>');
document.getElementById('pages_' + this.name + '_' + this.showTimes).innerHTML = this.createHtml(mode);
}
function toPage(pageIndex){
var toUrl;
var xfUrl = document.location.href;
if(xfUrl.indexOf("page=")<0){
toUrl=xfUrl+'&page='+pageIndex;
}else{
var xfPara = xfUrl.split("?")[1];
var xfParaArr = xfPara.split("&");
for(var x=0;x<xfParaArr.length;x++){
if(xfParaArr[x].indexOf('page')>=0){
xfParaArr[x]='page='+pageIndex;
}
}
xfPara='';
for(var x=0;x<xfParaArr.length;x++){
if(x==0){
xfPara+=xfParaArr[x];
}else{
xfPara+='&'+xfParaArr[x];
}
}
toUrl=xfUrl.split("?")[0]+"?"+xfPara;
}
location.href=toUrl;
}
页面:
<tr style="height: 24px ;">
<td colspan="15" align="center" height="48">
<c:if test="${null != page}">
<script type="text/javascript">
var pg=new pagination('pg',${page.pageIndex},${page.pageCount},${page.pageSize},10);
pg.printHtml(9);
</script>
</c:if>
</td>
</tr>