快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

ASP用于分页的两个函数

在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 = totalrecmsg_per_page \\\'n:总页数
else
n = totalrecmsg_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"第"&currentpage&"/"&n&"页&nbsp;&nbsp;"
response.write"共"&totalrec&"条信息&nbsp;&nbsp;"
if currentpage <= 1 then
response.write"第一页&nbsp;"&Separator&"&nbsp;"
response.write"前一页&nbsp;"&Separator&"&nbsp;"
else
response.write"<a href="""&url&"?page=1&"&querry&""" class="""&ListLink&""">第一页</a>&nbsp;"&Separator&"&nbsp;"
response.write"<a href="""&url&"?page="&currentpage-1&"&"&querry&""" class="""&ListLink&""">前一页</a>&nbsp;"&Separator&"&nbsp;"
end if
if currentpage = n then
response.write"下一页&nbsp;"&Separator&"&nbsp;"
response.write"最后页&nbsp;"
else
response.write"<a href="""&url&"?page="&currentpage+1&"&"&querry&""" class="""&ListLink&""">下一页</a>&nbsp;"&Separator&"&nbsp;"
response.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">最后页</a>&nbsp;"
end if
case "1"
if currentpage < n then
response.write"<a href="""&url&"?page="&currentpage+1&"&"&querry&""" class="""&ListLink&""">下一页</a>&nbsp;"
else
response.write"下一页&nbsp;"
end if
for i=1 to n
if cstr(i)=cstr(currentpage) then
response.write "<b>"&i&"</b>"&"&nbsp;"&Separator&"&nbsp;"
else
response.write"<a href="""&url&"?page="&i&"&"&querry&""" class="""&ListLink&""">"&i&"</a>&nbsp;"&Separator&"&nbsp;"
end if
next

case "2"
PageMerCout=10 \\\'每次可翻的最大页数
\\\'取得记录的最大页码段
if n mod PageMerCout=0 then
MaxPageFiled=nPageMerCout
else
MaxPageFiled=nPageMerCout+1
end if
\\\'判定当前页所在的页码段
if currentpage mod PageMerCout =0 then
CurrPageFiled=currentpagePageMerCout
else
CurrPageFiled=currentpagePageMerCout+1
end if
\\\'取得当前页码段的最大页码和最小页码
MaxPageNo=CurrPageFiled*PageMerCout
MinPageNo=(CurrPageFiled-1)*PageMerCout+1
\\\'输出 “第一页 | 前十页 |”
if currentpage<=1 then
response.write"第一页&nbsp;"&Separator&"&nbsp;"
else
response.write"<a href="""&url&"?page=1&"&querry&""" class="""&ListLink&""">第一页</a>&nbsp;"&Separator&"&nbsp;"
end if
if CurrPageFiled<=1 then
response.write"前十页&nbsp;"&Separator&"&nbsp;"
else
response.write"<a href="""&url&"?page="&MinPageNo-PageMerCout&"&"&querry&""" class="""&ListLink&""">前十页</a>&nbsp;"&Separator&"&nbsp;"
end if
\\\'输出当前页码段
for i=MinPageNo to MaxPageNo
if i<=n then
if cstr(i)=cstr(currentpage) then
response.write "<b>"&i&"</b>"&"&nbsp;"&Separator&"&nbsp;"
else
response.write"<a href="""&url&"?page="&i&"&"&querry&""">"&i&"</a>&nbsp;"&Separator&"&nbsp;"
end if
end if
next
\\\'输出 “后十页 | 最后页”
if CurrPageFiled>=MaxPageFiled then
response.write"后十页&nbsp;"&Separator&"&nbsp;"
else
response.write"<a href="""&url&"?page="&MaxPageNo+1&"&"&querry&""" class="""&ListLink&""">后十页</a>&nbsp;"&Separator&"&nbsp;"
end if
if currentpage>=n then
response.write"最后页&nbsp;"
else
response.write"<a href="""&url&"?page="&n&"&"&querry&""" class="""&ListLink&""">最后页</a>&nbsp;"
end if
end select
end sub
%>
返回类别: 教程
上一教程: SQL SERVER静态页面导出技术(SQL SERVER WEB ASSISTANT)
下一教程: 在ASP中使用MD5加密

您可以阅读与"ASP用于分页的两个函数"相关的教程:
· 将ASP的DEBUG变得简朴的两个函数
· 用CDONTS发送邮件的两个函数
· ASP的两个简朴的检测外部提交函数
· 在ASP中如何迅速优化分页的技巧
· ASP+FSO+框架实现ASP生成HTM并分页的方式(批量)
    微笑服务 优质保证 索取样品