From:IECN.Net;Author:钟钟
/**
*分页类构造
*参数nTotalList:总条数
*参数nPageSize:每页显示条数
*参数nPageNum:当前页码
*参数sPageUrl:分页链接的URL,页码以[pn]代替,输出时将被替换为实际页码
*参数nPageListSize:页码列表(下拉框)中显示的最多页码条数。该参数可省略,默认100
*/
functionPagination(nTotalList,nPageSize,nPageNum,sPageUrl,nPageListSize){
this.totalList=nTotalList;
this.pageSize=nPageSize;
this.pageNum=nPageNum;
if(nTotalList==0)
this.totalPages=1;
else
this.totalPages=Math.floor((this.totalList-1)/this.pageSize+1);
this.pageUrl=sPageUrl;
if(arguments[4])
this.pageListSize=nPageListSize;
else
this.pageListSize=100;
}
/**
*生成分页,将HTML直接输出
*无参数
*无返回值
*/
Pagination.prototype.generate=function(){
varoutput="";
output+="<tablewidth="98%"cellspacing="1"cellpadding="3"align="center"><tr><tdalign="right">";
output+="共"+this.totalList+"条每页"+this.pageSize+"条当前第";
output+="<selectonchange="if(this.value)location.href='"+this.pageUrl+"'.replace(/[pn]/,";
output+="this.value);"align="absMiddle"style="font:normal9pxVerdana,Arial,宋体;">";
varfirstPage=this.pageNum-Math.floor(this.pageListSize/2);
if(firstPage<1)
firstPage=1;
varlastPage=firstPage+this.pageListSize-1;
if(lastPage>this.totalPages){
lastPage=this.totalPages;
firstPage=lastPage-this.pageListSize+1;
if(firstPage<1)
firstPage=1;
}
if(firstPage>1){
output+="<optionvalue="1">1</option>";
if(firstPage>2)
output+="<optionvalue="">…</option>";
}
for(varp=firstPage;p<=lastPage;p++){
output+="<optionvalue=""+p+""";
if(p==this.pageNum)
output+="selected="yes"";
output+=">"+p+"</option>";
}
if(lastPage<this.totalPages){
if(lastPage<this.totalPages-1)
output+="<optionvalue="">…</option>";
output+="<optionvalue=""+this.totalPages+"">"+this.totalPages+"</option>";
}
if(this.pageNum>this.totalPages)
output+="<optionvalue=""selected="yes">页码超出范围</option>";
output+="</select>";
output+="/"+this.totalPages+"页";
if(this.pageNum==1){
output+="[首页]";
output+="[上页]";
}
else{
output+="<ahref=""+this.pageUrl.replace(/[pn]/,"1")+"">[首页]</a>";
output+="<ahref=""+this.pageUrl.replace(/[pn]/,this.pageNum-1)+"">[上页]</a>";
}
if(this.pageNum==this.totalPages){
output+="[下页]";
output+="[尾页]";
}
else{
output+="<ahref=""+this.pageUrl.replace(/[pn]/,this.pageNum+1)+"">[下页]</a>";
output+="<ahref=""+this.pageUrl.replace(/[pn]/,this.totalPages)+"">[尾页]</a>";
}
output+="</td></tr></table>";
document.writeln(output);
}