1.分页效果:首页 前10 1 2 3 4 5 6 7 8 9 10 后10 尾页
<%
Dim iPageCount,i,pageStart,pageEnd
iPageCount = 30 '假设有30页
if request("display")="" then
curpage=1
else
curpage=cint(request("display"))
end if
'页数从pageStart开始
pageStart = ((curpage-1)/10)*10+1
'页数从pageEnd结束
pageEnd = pageStart + 9
'如果超过总的记录数,则pageEnd等于总记录数
if pageEnd > iPageCount Then pageEnd = iPageCount
Response.Write("第" & curpage & "/" & iPageCount & "页")
if pageStart > 1 then Response.Write("<a href=test.asp?display=" & pageStart - 10 & "><<</a> ")
for i = pageStart to pageEnd
Response.Write("<a href='?display=" & i & "'>第" & i & "页</a> ")
next
If pageEnd < iPageCount Then Response.Write("<a href=test.asp?display=" & pageStart + 10 & ">>></a>")
%>
2.分页效果: 共有 X 篇文章 首页 前一页 后一页 尾页
'***********************************************
'过程名:showpage
'作 用:显示“上一页 下一页”等信息
'参 数:sfilename ----链接地址
' totalnumber ----总数量
' maxperpage ----每页数量
' ShowTotal ----是否显示总数量
' ShowAllPages ---是否用下拉列表显示所有页面以供跳转。有某些页面不能使用,否则会出现JS错误。
' strUnit ----计数单位
'***********************************************
sub showpage(sfilename,totalnumber,maxperpage,ShowTotal,ShowAllPages,strUnit)
dim n, i,strTemp,strUrl
if totalnumber mod maxperpage=0 then
n= totalnumber / maxperpage
else
n= totalnumber / maxperpage+1
end if
strTemp= "<table align='center'><form name='showpages' method='Post' action='" & sfilename & "'><tr><td>"
if ShowTotal=true then
strTemp=strTemp & "共 <b>" & totalnumber & "</b> " & strUnit & " "
end if
strUrl=JoinChar(sfilename)
if CurrentPage<2 then
strTemp=strTemp & "首页 上一页 "
else
strTemp=strTemp & "<a href='" & strUrl & "page=1'>首页</a> "
strTemp=strTemp & "<a href='" & strUrl & "page=" & (CurrentPage-1) & "'>上一页</a> "
end if
' Response.Write(strTemp)
if n-currentpage<1 then
strTemp=strTemp & "下一页 尾页"
else
strTemp=strTemp & "<a href='" & strUrl & "page=" & (CurrentPage+1) & "'>下一页</a> "
strTemp=strTemp & "<a href='" & strUrl & "page=" & n & "'>尾页</a>"
end if
' Response.Write(strTemp)
strTemp=strTemp & " 页次:<strong><font color=red>" & CurrentPage & "</font>/" & n & "</strong>页 "
strTemp=strTemp & " <b>" & maxperpage & "</b>" & strUnit & "/页"
if ShowAllPages=True then
strTemp=strTemp & " 转到:<select name='page'size='1'onchange='javascript:submit()'>"
for i = 1 to n
strTemp=strTemp & "<option value='" & i & "'"
if cint(CurrentPage)=cint(i) then strTemp=strTemp & " selected "
strTemp=strTemp & ">第" & i & "页</option>"
next
strTemp=strTemp & "</select>"
end if
strTemp=strTemp & "</td></tr></form></table>"
response.write strTemp
end sub
'***********************************************
'函数名:JoinChar
'作 用:向地址中加入 ? 或 &
'参 数:strUrl ----网址
'返回值:加了 ? 或 & 的网址
'***********************************************
function JoinChar(strUrl)
if strUrl="" then
JoinChar=""
exit function
end if
if InStr(strUrl,"?")<len(strUrl) then
if InStr(strUrl,"?")>1 then
if InStr(strUrl,"&")<len(strUrl) then
JoinChar=strUrl & "&"
else
JoinChar=strUrl
end if
else
JoinChar=strUrl & "?"
end if
else
JoinChar=strUrl
end if
end function
调用的时候可以这样调用:
showpage strFileName,totalPut,MaxPerPage,true,false,"篇文章"
strfilename:连接文件
totalPut:记录总数
maxperpage:每页显示数量
3.比较灵活的方式,可以设定分页显示效果
'分页列表函数
'url 跳转的地址
'querry ?后的参数
'Separator 分隔符
'ListType 分页类型
'类型:0 "第一页 | 前一页 | 下一页 | 最后页"
'类型:1 "1 | 2 | 3 | 4 | ..........| 下一页"
'类型:2 "第一页 | 前十页 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 后十页 | 最后页"
'ListLink 链接使用的样式
sub PageList(ListType,url,querry,Separator,ListLink)
if Separator="" then Separator="|"
if ListType="" then ListType="0"
select case ListType
case "0"
response.write"第"¤tpage&"/"&n&"页 "
response.write"共"&totalrec&"条信息 "
if currentpage <= 1 then
response.write"第一页 "&Separator&" "
response.write"前一页 "&Separator&" "
else
response.write"<a href="""&url&"?page=1&"&querry&""" class="""&ListLink&""">第一页</a> "&Separator&" "
response.write"<a href="""&url&"?page="¤tpage-1&"&"&querry&""" class="""&ListLink&""">前一页</a> "&Separator&" "
end if
if currentpage = n then
response.write"下一页 "&Separator&" "
response.write"最后页 "
else
response.write"<a href="""&url&"?page="¤tpage+1&"&"&querry&""" class="""&ListLink&""">下一页</a> "&Separator&" "
response.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">最后页</a> "
end if
case "1"
if currentpage < n then
response.write"<a href="""&url&"?page="¤tpage+1&"&"&querry&""" class="""&ListLink&""">下一页</a> "
else
response.write"下一页 "
end if
for i=1 to n
if cstr(i)=cstr(currentpage) then
response.write "<b>"&i&"</b>"&" "&Separator&" "
else
response.write"<a href="""&url&"?page="&i&"&"&querry&""" class="""&ListLink&""">"&i&"</a> "&Separator&" "
end if
next
case "2"
PageMerCout=10 '每次可翻的最大页数
'取得记录的最大页码段
if n mod PageMerCout=0 then
MaxPageFiled=n/PageMerCout
else
MaxPageFiled=n/PageMerCout+1
end if
'判断当前页所在的页码段
if currentpage mod PageMerCout =0 then
CurrPageFiled=currentpage/PageMerCout
else
CurrPageFiled=currentpage/PageMerCout+1
end if
'取得当前页码段的最大页码和最小页码
MaxPageNo=CurrPageFiled*PageMerCout
MinPageNo=(CurrPageFiled-1)*PageMerCout+1
'输出 “第一页 | 前十页 |”
if currentpage<=1 then
response.write"第一页 "&Separator&" "
else
response.write"<a href="""&url&"?page=1&"&querry&""" class="""&ListLink&""">第一页</a> "&Separator&" "
end if
if CurrPageFiled<=1 then
response.write"前十页 "&Separator&" "
else
response.write"<a href="""&url&"?page="&MinPageNo-PageMerCout&"&"&querry&""" class="""&ListLink&""">前十页</a> "&Separator&" "
end if
'输出当前页码段
for i=MinPageNo to MaxPageNo
if i<=n then
if cstr(i)=cstr(currentpage) then
response.write "<b>"&i&"</b>"&" "&Separator&" "
else
response.write"<a href="""&url&"?page="&i&"&"&querry&""">"&i&"</a> "&Separator&" "
end if
end if
next
'输出 “后十页 | 最后页”
if CurrPageFiled>=MaxPageFiled then
response.write"后十页 "&Separator&" "
else
response.write"<a href="""&url&"?page="&MaxPageNo+1&"&"&querry&""" class="""&ListLink&""">后十页</a> "&Separator&" "
end if
if currentpage>=n then
response.write"最后页 "
else
response.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">最后页</a> "
end if
end select
end sub
4.一个比较简单的
on error resume next
'分页程序
function fy(scount,pgsize,pg,url)
'scount记录总数
'pgsize每面记录数
'pg当前页
'url转向的地址,运行本函数后会在后面加上"&page=页号"
dim pgcount,i,j,mh,k
mh=chr(34) '不好意思,是双引号
'cint()会四舍五入,所以不得不加个k
k=(scount+pgsize-1)/pgsize
pgcount=cint((scount+pgsize-1)/pgsize)
if pgcount>k then pgcount=pgcount-1
response.write "<a href="+mh+url+"&page=1"+mh+">[第一页]</a> "
if cint(pg)>cint(1) then
response.write "<a href="+mh+url+"&page="+cstr(pg-1)+mh+">[上一页]</a> "
end if
if cint(pg)>5 then
i=cint(pg)-5
else
i=1
end if
if cint(pgcount)<cint(pg+5) then
j=pgcount
else
j=pg+5
end if
while cint(i)<=cint(j)
if cint(i)=cint(pg) then
response.write cstr(i)+" "
else
response.write "<a href="+mh+url+"&page="+cstr(i)+mh+">"+cstr(i)+"</a> "
end if
i=i+1
wend
if cint(pgcount)>cint(pg) then
response.write "<a href="+mh+url+"&page="+cstr(pg+1)+mh+">[下一页]</a> "
end if
response.write "<a href="+mh+cstr(url)+"&page="+cstr(pgcount)+mh+">[最后页]</a> "
end function