通用分页实现(ASP版)


自己写的通用分页,可设置显示的分页链接数,带下拉选择:

 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$条记录&nbsp;$pagesize$条/页&nbsp;第$curpage$/$pagenum$页&nbsp;"
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>&nbsp;"
40if curpage>1 then
41    splitpage_html=splitpage_html & "<a href='" & addr_url & up_page & "'>上一页</a>&nbsp;"
42else
43    splitpage_html=splitpage_html & "上一页&nbsp;"
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>&nbsp;"
67    else
68        splitpage_html=splitpage_html & "<a href='" & addr_url & idx & "'>" & idx & "</a>&nbsp;"
69    end if
70next
71
72if pagenum-curpage>0 then
73    splitpage_html=splitpage_html & "<a href='" & addr_url & down_page & "'>下一页</a>&nbsp;"
74else
75    splitpage_html=splitpage_html & "下一页&nbsp;"
76end if
77splitpage_html=splitpage_html & "<a href='" & addr_url & last_page & "'>尾页</a>&nbsp;"
78
79splitpage_html=splitpage_html & "跳转到&nbsp;"
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%>
posted @ 2008-06-02 13:20  shaoyun  阅读(428)  评论(1编辑  收藏  举报