| 在asp代码中分页是有点麻烦的事情,个人在在代码编写过程中把分页代码写成了两个函数,虽然在功能上不是很完善,但对于一般的应用应该是满足的了。  [% '分页函数分为两个函数'CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs) 分页计算函数
 'PageList(ListType,url,querry,Separator,ListLink) 分页列表函数
 '分页计算函数'totalrec 记录集总数
 'msg_per_page 每页显示的记录数,在调用CalcPage时需提前对该变量赋值
 'currentpage 当前页变量,在调用CalcPage时需提前对该变量赋值
 'n 总页数
 'rowcount 设置每一页的数据记录数
 'PageRs 记录集对象
 sub CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs)
 n=0 '设置无记录时页数为0
 if currentpage="" then currentpage=0
 'PageRs.EOF and PageRs.bof  无记录
 'Not PageRs.EOF Or Not PageRs.BOF 有记录
 if Not PageRs.EOF Or Not PageRs.BOF then
 totalrec=PageRs.recordcount
 PageRs.pagesize=msg_per_page
 if totalrec mod msg_per_page = 0 then '计算总页数,recordcount:数据的总记录数
 n = totalrec\msg_per_page 'n:总页数
 else
 n = totalrec\msg_per_page+1
 end if
 if not isnumeric(currentpage) or currentpage="" then currentpage=1
 If currentpage <> "" then
 currentpage = cint(currentpage)
 end if
 if currentpage < 1 then
 currentpage = 1
 end if
 if currentpage*msg_per_page > totalrec and not((currentpage-1)*msg_per_page < totalrec) then
 currentPage=1
 end if
 PageRs.absolutepage = currentpage 'absolutepage:设置指针指向某页开头
 rowcount = PageRs.pagesize            'pagesize:设置每一页的数据记录数
 end if
 end sub
 %]
 <%
 '分页列表函数
 '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"第一页 "&Separator&" "
 response.write"前一页 "&Separator&" "
 end if
 if currentpage = n then
 response.write"下一页 "&Separator&" "
 response.write"最后页 "
 else
 response.write"下一页 "&Separator&" "
 response.write"最后页 "
 end if
 case "1"
 if currentpage < n then
 response.write"下一页 "
 else
 response.write"下一页 "
 end if
 for i=1 to n
 if cstr(i)=cstr(currentpage) then
 response.write ""&i&""&" "&Separator&" "
 else
 response.write""&i&" "&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"第一页 "&Separator&" "
 end if
 if CurrPageFiled<=1 then
 response.write"前十页 "&Separator&" "
 else
 response.write"前十页 "&Separator&" "
 end if
 '输出当前页码段
 for i=MinPageNo to MaxPageNo
 if i<=n then
 if cstr(i)=cstr(currentpage) then
 response.write ""&i&""&" "&Separator&" "
 else
 response.write""&i&" "&Separator&" "
 end if
 end if
 next
 '输出 “后十页 | 最后页”
 if CurrPageFiled>=MaxPageFiled then
 response.write"后十页 "&Separator&" "
 else
 response.write"后十页 "&Separator&" "
 end if
 if currentpage>=n then
 response.write"最后页 "
 else
 response.write"最后页 "
 end if
 end select
 end sub
 %>
 |