分享
 
 
 

ASP用于分页的两个函数

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

在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"第"&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=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"第一页&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

%>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有