Asp用于分页的两个函数

(原创 vince6799)
在asp代码中分页是有点麻烦的事情,个人在在代码编写过程中把分页代码写成了两个函数,虽然在功能上不是很完善,但对于一般的应用应该是满足的了。

 1   
 2'分页函数分为两个函数   
 3'CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs) 分页计算函数   
 4'PageList(ListType,url,querry,Separator,ListLink) 分页列表函数 
 5
 6'分页计算函数   
 7'totalrec 记录集总数   
 8'msg_per_page 每页显示的记录数,在调用CalcPage时需提前对该变量赋值   
 9'currentpage 当前页变量,在调用CalcPage时需提前对该变量赋值   
10'n 总页数   
11'rowcount 设置每一页的数据记录数   
12'PageRs 记录集对象   
13sub CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs)   
14n=0 '设置无记录时页数为0   
15if currentpage="" then currentpage=0   
16'PageRs.EOF and PageRs.bof 无记录   
17'Not PageRs.EOF Or Not PageRs.BOF 有记录   
18if Not PageRs.EOF Or Not PageRs.BOF then   
19totalrec=PageRs.recordcount   
20PageRs.pagesize=msg_per_page   
21if totalrec mod msg_per_page = 0 then '计算总页数,recordcount:数据的总记录数   
22n = totalrec\msg_per_page 'n:总页数   
23else   
24n = totalrec\msg_per_page+1   
25end if   
26if not isnumeric(currentpage) or currentpage="" then currentpage=1   
27If currentpage <> "" then   
28currentpage = cint(currentpage)   
29end if   
30if currentpage < 1 then   
31currentpage = 1   
32end if   
33if currentpage*msg_per_page > totalrec and not((currentpage-1)*msg_per_page < totalrec) then   
34currentPage=1   
35end if   
36PageRs.absolutepage = currentpage 'absolutepage:设置指针指向某页开头   
37rowcount = PageRs.pagesize 'pagesize:设置每一页的数据记录数   
38end if   
39end sub   
 1   
 2'分页列表函数   
 3'url 跳转的地址   
 4'querry ?后的参数   
 5'Separator 分隔符   
 6'ListType 分页类型   
 7'类型:0 "第一页 | 前一页 | 下一页 | 最后页"   
 8'类型:1 "1 | 2 | 3 | 4 | ..........| 下一页"   
 9'类型:2 "第一页 | 前十页 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 后十页 | 最后页"   
10'ListLink 链接使用的样式 
11
12sub PageList(ListType,url,querry,Separator,ListLink)   
13if Separator="" then Separator="|"   
14if ListType="" then ListType="0"   
15select case ListType   
16case "0"   
17response.write"第"&currentpage&"/"&n&"页  "   
18response.write"共"&totalrec&"条信息  "   
19if currentpage <= 1 then   
20response.write"第一页 "&Separator&" "   
21response.write"前一页 "&Separator&" "   
22else   
23response.write"

<a "&listlink&"""="" "&url&"?page='1&amp;"&amp;querry&amp;"""' class="" href="">第一页</a>

1"&Separator&" "   
2response.write"

<a "&listlink&"""="" "&url&"?page="¤tpage-1&amp;" &"&querry&"""="" class="" href="">前一页</a>

1"&Separator&" "   
2end if   
3if currentpage = n then   
4response.write"下一页 "&Separator&" "   
5response.write"最后页 "   
6else   
7response.write"

<a "&listlink&"""="" "&url&"?page="¤tpage+1&amp;" &"&querry&"""="" class="" href="">下一页</a>

1"&Separator&" "   
2response.write"

<a "&listlink&"""="" "&url&"?page="&amp;n&amp;" &"&querry&"""="" class="" href="">最后页</a>

1"   
2end if   
3case "1"   
4if currentpage < n then   
5response.write"

<a "&listlink&"""="" "&url&"?page="¤tpage+1&amp;" &"&querry&"""="" class="" href="">下一页</a>

1"   
2else   
3response.write"下一页 "   
4end if   
5for i=1 to n   
6if cstr(i)=cstr(currentpage) then   
7response.write "

<b>"&amp;i&amp;"</b>

1"&" "&Separator&" "   
2else   
3response.write"

<a "&listlink&"""="" "&url&"?page="&amp;i&amp;" &"&querry&"""="" class="" href="">"&amp;i&amp;"</a>

 1"&Separator&" "   
 2end if   
 3next   
 4  
 5case "2"   
 6PageMerCout=10 '每次可翻的最大页数   
 7'取得记录的最大页码段   
 8if n mod PageMerCout=0 then   
 9MaxPageFiled=n\PageMerCout   
10else   
11MaxPageFiled=n\PageMerCout+1   
12end if   
13'判断当前页所在的页码段   
14if currentpage mod PageMerCout =0 then   
15CurrPageFiled=currentpage\PageMerCout   
16else   
17CurrPageFiled=currentpage\PageMerCout+1   
18end if   
19'取得当前页码段的最大页码和最小页码   
20MaxPageNo=CurrPageFiled*PageMerCout   
21MinPageNo=(CurrPageFiled-1)*PageMerCout+1   
22'输出 “第一页 | 前十页 |”   
23if currentpage<=1 then   
24response.write"第一页 "&Separator&" "   
25else   
26response.write"

<a "&listlink&"""="" "&url&"?page='1&amp;"&amp;querry&amp;"""' class="" href="">第一页</a>

1"&Separator&" "   
2end if   
3if CurrPageFiled<=1 then   
4response.write"前十页 "&Separator&" "   
5else   
6response.write"

<a "&listlink&"""="" "&url&"?page="&amp;MinPageNo-PageMerCout&amp;" &"&querry&"""="" class="" href="">前十页</a>

1"&Separator&" "   
2end if   
3'输出当前页码段   
4for i=MinPageNo to MaxPageNo   
5if i<=n then   
6if cstr(i)=cstr(currentpage) then   
7response.write "

<b>"&amp;i&amp;"</b>

1"&" "&Separator&" "   
2else   
3response.write"

<a "&url&"?page="&amp;i&amp;" &"&querry&"""="" href="">"&amp;i&amp;"</a>

1"&Separator&" "   
2end if   
3end if   
4next   
5'输出 “后十页 | 最后页”   
6if CurrPageFiled>=MaxPageFiled then   
7response.write"后十页 "&Separator&" "   
8else   
9response.write"

<a "&listlink&"""="" "&url&"?page="&amp;MaxPageNo+1&amp;" &"&querry&"""="" class="" href="">后十页</a>

1"&Separator&" "   
2end if   
3if currentpage>=n then   
4response.write"最后页 "   
5else   
6response.write"

<a "&listlink&"""="" "&url&"?page="&amp;n&amp;" &"&querry&"""="" class="" href="">最后页</a>

1"   
2end if   
3end select   
4end sub   
Published At
Categories with Web编程
Tagged with
comments powered by Disqus