分页函数

CSDN - 专家门诊 -
主  题:
看了一个贴,决定放一个分页函数,多种样式,可自行再添加样式。
作  者:davery ()
信 誉 值:99
所属论坛:Web 开发 ASP
问题点数:100
回复次数:29
发表时间:2005-1-6 13:47:39
'********************************
'功能:分页函数,可作为公共模块
'作者:Davery
'QQ:25921853
'Email:hbhost@163.com
'例:
'rs.open "select * from city order  by provid",conn,1,1
'if not rs.eof then
'pagesize=20
'SplitPages_starts nowpage,pagesize,rs
'for i=1 to pagesize
'response.Write(rs("CityNameCN")&"<br/>")
'rs.movenext
'if rs.eof then exit for
'next
'SplitPages_Ends "splitpages.asp?",rs,3
'********************************
Function SplitPages_starts(byref nowpage,byval n,byref rs) '当前页,每页记录数,记录集
nowpage=Request.querystring("page")
if not isnumeric(nowpage) then nowpage=1 
nowpage=clng(nowpage)
if nowpage<1 then nowpage=1
rs.pagesize=n '每页显示数
if nowpage>rs.pagecount then nowpage=rs.pagecount
if rs.recordcount<>0 then rs.absolutepage=nowpage 
end function 
Function SplitPages_Ends(byval nowpath,byref rs,byval t)'当前页面地址,记录集,样式
select case t
case 1 '样式:首页 上页 下页 末页  1/1页 30条/页 共18条 
if rs.bof then firstpage=0 else firstpage=page
if rs.pagecount=0 then lastpage=0 else lastpage=rs.pagecount
nowpagenext=nowpage+1
nowpageprevious=nowpage-1
if nowpage=1 or rs.recordcount=0 then
Response.Write("<font color='#809980'>首页&nbsp;上页</font> ")
else
response.write "<a href='" &nowpath &"page=1'>首页</a>&nbsp;<a href='" &nowpath &"page=" &nowpageprevious & "'>上页</a>"
end if
if nowpage=rs.pagecount then
Response.Write("<font color='#809980'>&nbsp;下页&nbsp;末页&nbsp;</font>")
else
response.write "&nbsp;<a href='" &nowpath &"page="&nowpagenext&"'>下页</a>&nbsp;<a href='" &nowpath &"page=" &rs.pagecount& "'>末页</a>&nbsp;"
end if
response.write "&nbsp;<select name='nowpage' style='color:#A20000' οnchange=" &chr(34) &"window.open(this.options[this.selectedIndex].value,'_self')"&chr(34) &">"
for i=1 to rs.pagecount
response.write "<option value='" &nowpath &"page=" &i &"'"
if nowpage=i then response.write " selected"
response.write ">"&i&"</option>"
next
response.write "</select>/"&rs.pagecount&"页"
response.write "&nbsp;"&rs.pagesize&"条/页&nbsp;共"&rs.RecordCount &"条"
case 2 '样式:首页 上页 下页 末页 
if rs.bof then firstpage=0 else firstpage=page
if rs.pagecount=0 then lastpage=0 else lastpage=rs.pagecount 
nowpagenext=nowpage+1
nowpageprevious=nowpage-1
if nowpage=1 or rs.recordcount=0 then
Response.Write("<font color='#809980'>首页&nbsp;上页</font> ")
else
response.write "<a href='" &nowpath &"page=1'>首页</a>&nbsp;<a href='" &nowpath &"page=" &nowpageprevious & "'>上页</a>"
end if
if nowpage=rs.pagecount then
Response.Write("<font color='#809980'>&nbsp;下页&nbsp;末页&nbsp;</font>")
else
response.write "&nbsp;<a href='" &nowpath &"page="&nowpagenext&"'>下页</a>&nbsp;<a href='" &nowpath &"page=" &rs.pagecount& "'>末页</a>&nbsp;"
end if
case 3  '样式:|<<< 2 3 4 5 6 >>>| 
firstpage=Request.querystring("fp")
lastpage=Request.querystring("lp")
if not isnumeric(firstpage) then firstpage=1 
firstpage=clng(firstpage)
if firstpage<1 then firstpage=1 
if rs.pagecount=0 then allpage=0 else allpage=rs.pagecount
if not isnumeric(lastpage) or lastpage="" then lastpage=5 else lastpage=clng(lastpage)
if lastpage>allpage then lastpage=allpage
if (firstpage-1)<5 then fptemp=1:lptemp=5 else fptemp=firstpage-5:lptemp=firstpage-1
if lptemp>allpage then lptemp=allpage
if firstpage-1>=1 thenresponse.write "<a href='" &nowpath &"page=" &firstpage-1& "&fp="&fptemp&"&lp="&lptemp&"'>|<<</a>"
for i=firstpage to lastpage
if i=nowpage then response.write "&nbsp;&nbsp;"&i else response.write "&nbsp;&nbsp;<a href='" &nowpath &"page=" &i & "&fp="&firstpage&"&lp="&lastpage&"'>"&i&"</a>"
next
if lastpage+5>allpage then lptemp=allpage else lptemp=lastpage+5
if (allpage-lastpage)>=1 then response.write "&nbsp;&nbsp;<a href='" &nowpath &"page=" &lastpage+1& "&fp="&lastpage+1&"&lp="&lptemp&"'>>>|</a>"
end select


回复人: davery() ( ) 信誉:99 2005-1-6 13:51:52 得分:0
 
来CSDN上抢了两个月的分,抢到了一个五角,最近很少上来了,上来放一个代码,顺便散点分

Top
回复人: menrock(做人要厚道) ( ) 信誉:100 2005-1-6 13:52:46 得分:4
 
我接

Top
回复人: mymyal123(风之森) ( ) 信誉:100 2005-1-6 13:52:47 得分:4
 
up

Top
回复人: davery() ( ) 信誉:99 2005-1-6 14:02:21 得分:0
 
顶者有分啊

Top
回复人: flyingsnowy(身无挂碍一切随缘,缘由心生随遇而安(杨)) ( ) 信誉:97 2005-1-6 14:03:07 得分:4
 
怎么不多送上点分哇。。5555

Top
回复人: flyingsnowy(身无挂碍一切随缘,缘由心生随遇而安(杨)) ( ) 信誉:97 2005-1-6 14:03:56 得分:4
 
我碰到一个小问题哇。。
http://community.csdn.net/Expert/TopicView1.asp?id=3702659
帮我看一下。

Top
回复人: aassdd(梦幻生) ( ) 信誉:100 2005-1-6 17:38:21 得分:4
 
好~正好需要,谢谢。
先用看。

Top
回复人: yxhzj(余华[学习J2EE中]) ( ) 信誉:90 2005-1-6 17:43:05 得分:4
 
恭喜

Top
回复人: xhlin(HeaD) ( ) 信誉:100 2005-1-6 17:44:51 得分:4
 
送分?

Top
回复人: tatty_bad(我总是出现在该出现的地方) ( ) 信誉:100 2005-1-6 18:24:48 得分:4
 
不错不错,,帮你Up。。。有了这些,就看自己怎么去做SQL查询了。

Top
回复人: AppleBBS(Dicky) ( ) 信誉:100 2005-1-6 21:33:36 得分:4
 
vok

Top
回复人: gyzrich(南山排骨) ( ) 信誉:97 2005-1-6 21:38:16 得分:4
 
我一般把分页作成类

Top
回复人: yanqunli(艳群) ( ) 信誉:100 2005-1-6 21:48:10 得分:4
 
太好了,我正需要借鉴这样一段代码呢,我自己做的有点小问题,看了你这个后有所启发,非常感谢!

Top
回复人: csyangzy(阳阳) ( ) 信誉:98 2005-1-7 1:20:01 得分:4
 
xx

Top
回复人: tigerhu76(虎虎) ( ) 信誉:100 2005-1-7 7:18:33 得分:4
 
mark

Top
回复人: blueonly(我爱这里) ( ) 信誉:95 2005-1-7 8:19:45 得分:4
 
好。

Top
回复人: lawyu(雨淋漓) ( ) 信誉:100 2005-1-7 8:34:27 得分:4
 
看看
jf

Top
回复人: zfhdream(郑潇) ( ) 信誉:100 2005-1-7 9:00:53 得分:4
 
楼主是好人啊~
大家要多学习学习~~~
THX

Top
回复人: cyj920(Builder) ( ) 信誉:98 2005-1-7 9:26:31 得分:4
 
强!

Top
回复人: yk2004(靠靠) ( ) 信誉:100 2005-1-7 9:44:00 得分:3
 
好人那!!ToT
我顶!!

Top
回复人: yjb136(我是DOS) ( ) 信誉:100 2005-1-7 9:54:18 得分:5
 
我刚写了个条件查询带分页的语句:

呵呵看谁查的快:
写作人化名:天使与眼泪,只供学习用,QQ:94686484 E-mail:hn199@sina.com

snr=request("snr") '传递的查询内容
if request("page")="" then
curpage=1
else
curpage=request("page")'传递的页数
end if
page_record=10  '每页显示数
set rsd=conn.execute("select count(*) as count  from gongsi where gongsiname like '%"&snr&"%' or gongsibeizhu like '%"&snr&"%'") '符合条件的总数
counth=rsd("count")-(curpage-1)*10   当页显示以后的总数
set rs=conn.execute("select top "&page_record&" * from gongsi where (gongsiname like '%"&snr&"%' or gongsibeizhu like '%"&snr&"%') and userid  in (select top "&counth&" userid from gongsi where gongsiname like '%"&snr&"%' or gongsibeizhu like '%"&snr&"%'  order by userid desc) order by userid ASC")
'总体是,先求总数,userid 必须在(总数-显示过的总数)的后N条记录中,显示过和数为:(当前数-1)*每页显示数,后N条没有显示过的为:总数-显示过的+当前显示数
do while not rs.eof'循环输出内容
rs.movenext
loop
rs.close
set rs=nothing

Top
回复人: flybird99(飞鸟久久) ( ) 信誉:93 2005-1-7 10:48:14 得分:3
 
学习一下!

Top
回复人: chencr(雨晴) ( ) 信誉:100 2005-1-7 10:51:26 得分:3
 
受用

Top
回复人: beaner2004(豆儿) ( ) 信誉:100 2005-1-7 10:58:04 得分:3
 
ding .

Top
回复人: qfacy(两袖清风) ( ) 信誉:100 2005-1-7 13:44:34 得分:3
 
看看

Top
回复人: yifa(鱼) ( ) 信誉:100 2005-1-7 14:49:16 得分:3
 
一直对分页很不爽,希望你这有所帮助

Top
回复人: diya(风火浪| 学习JAVA基础J2SE中) ( ) 信誉:104 2005-1-7 15:01:26 得分:3
 
呵呵,接接分,看看你的这个函数如何~!

Top
回复人: yvsy(一对一) ( ) 信誉:100 2005-1-7 15:05:35 得分:3
 
不错的说,研究去

Top
回复人: jhysky(尘土御风) ( ) 信誉:100 2005-1-7 15:08:24 得分:3
 
好啊 !有机会试试这个函数!

Top

该问题已经结贴 ,得分记录: menrock (4)、 mymyal123 (4)、 flyingsnowy (4)、 flyingsnowy (4)、 aassdd (4)、 yxhzj (4)、 xhlin (4)、 tatty_bad (4)、 AppleBBS (4)、 gyzrich (4)、 yanqunli (4)、 csyangzy (4)、 tigerhu76 (4)、 blueonly (4)、 lawyu (4)、 zfhdream (4)、 cyj920 (4)、 yk2004 (3)、 yjb136 (5)、 flybird99 (3)、 chencr (3)、 beaner2004 (3)、 qfacy (3)、 yifa (3)、 diya (3)、 yvsy (3)、 jhysky (3)、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值