自己写的通用分页,可设置显示的分页链接数,带下拉选择:
1<%
2'Written by Shaoyun 20:17 2008年5月29日 0:38
3'Email:shaoyun at yeah.net
4'Blog:http://shaoyun.cnblogs.com
5'分页函数:splitpage(记录总数,每页显示记录数,显示几条分页链接)
6Function splitpage(rscount,pagesize,shownum)
7
8Dim pagenum,curpage,first_page,last_page,up_page,down_page,idx,addr_url,splitpage_html
9
10addr_url=Request.ServerVariables("URL")
11addr_url=Mid(addr_url,InstrRev(addr_url,"/")+1)
12addr_url=addr_url & "?page="
13
14if (rscount mod pagesize)=0 then
15 pagenum=rscount/pagesize
16else
17 pagenum=rscount/pagesize+1
18end if
19first_page=1
20last_page=pagenum
21
22curpage=1
23if isnumeric(trim(request.QueryString("page"))) then
24 curpage=trim(request.QueryString("page"))
25 if pagenum-curpage<0 then curpage=pagenum
26else
27 curpage=1
28end if
29
30up_page=curpage-1
31down_page=curpage+1
32
33splitpage_html="共$rscount$条记录 $pagesize$条/页 第$curpage$/$pagenum$页 "
34splitpage_html=replace(splitpage_html,"$rscount$",rscount)
35splitpage_html=replace(splitpage_html,"$pagesize$",pagesize)
36splitpage_html=replace(splitpage_html,"$curpage$",curpage)
37splitpage_html=replace(splitpage_html,"$pagenum$",pagenum)
38
39splitpage_html=splitpage_html & "<a href='" & addr_url & first_page & "'>首页</a> "
40if curpage>1 then
41 splitpage_html=splitpage_html & "<a href='" & addr_url & up_page & "'>上一页</a> "
42else
43 splitpage_html=splitpage_html & "上一页 "
44end if
45
46dim fbegin,fend
47if shownum mod 2 then
48 show_front_num=int(shownum/2)
49 show_back_num=int(shownum/2)
50else
51 show_front_num=int(shownum/2)-1
52 show_back_num=int(shownum/2)
53end if
54if curpage-1<show_front_num then
55 fbegin=1
56 fend=shownum
57elseif curpage+show_back_num>pagenum then
58 fend=pagenum
59 fbegin=pagenum-shownum+1
60else
61 fbegin=curpage-show_front_num
62 fend=curpage+show_back_num
63end if
64for idx=fbegin to fend
65 if curpage-idx=0 then
66 splitpage_html=splitpage_html & "<b>" & idx & "</b> "
67 else
68 splitpage_html=splitpage_html & "<a href='" & addr_url & idx & "'>" & idx & "</a> "
69 end if
70next
71
72if pagenum-curpage>0 then
73 splitpage_html=splitpage_html & "<a href='" & addr_url & down_page & "'>下一页</a> "
74else
75 splitpage_html=splitpage_html & "下一页 "
76end if
77splitpage_html=splitpage_html & "<a href='" & addr_url & last_page & "'>尾页</a> "
78
79splitpage_html=splitpage_html & "跳转到 "
80splitpage_html=splitpage_html & "<select onChange=window.location.href=this.options[this.selectedIndex].value>"
81For idx=1 To pagenum
82 If curpage-idx=0 Then
83 splitpage_html=splitpage_html & "<option value='" & addr_url & idx & "' selected>第" & idx & "页</option>"
84 Else
85 splitpage_html=splitpage_html & "<option value='" & addr_url & idx & "'>第" & idx & "页</option>"
86 End if
87Next
88splitpage_html=splitpage_html & "</select>"
89
90response.Write splitpage_html
91
92End Function
93%>