Javascript实现的分页函数

时间:2021-05-26

/**
*分页类构造
*参数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);
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章