分页函数

来源:互联网 发布:中建八局投资公司知乎 编辑:程序博客网 时间:2024/06/10 17:36
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=1rs.pagesize=n '每页显示数if nowpage>rs.pagecount then nowpage=rs.pagecountif rs.recordcount<>0 then rs.absolutepage=nowpage end function Function SplitPages_Ends(byval nowpath,byref rs,byval t)'当前页面地址,记录集,样式select case tcase 1 '样式:首页 上页 下页 末页  1/1页 30条/页 共18条 if rs.bof then firstpage=0 else firstpage=pageif rs.pagecount=0 then lastpage=0 else lastpage=rs.pagecountnowpagenext=nowpage+1nowpageprevious=nowpage-1if nowpage=1 or rs.recordcount=0 thenResponse.Write("<font color='#809980'>首页&nbsp;上页</font> ")elseresponse.write "<a href='" &nowpath &"page=1'>首页</a>&nbsp;<a href='" &nowpath &"page=" &nowpageprevious & "'>上页</a>"end ifif nowpage=rs.pagecount thenResponse.Write("<font color='#809980'>&nbsp;下页&nbsp;末页&nbsp;</font>")elseresponse.write "&nbsp;<a href='" &nowpath &"page="&nowpagenext&"'>下页</a>&nbsp;<a href='" &nowpath &"page=" &rs.pagecount& "'>末页</a>&nbsp;"end ifresponse.write "&nbsp;<select name='nowpage' style='color:#A20000' onchange=" &chr(34) &"window.open(this.options[this.selectedIndex].value,'_self')"&chr(34) &">"for i=1 to rs.pagecountresponse.write "<option value='" &nowpath &"page=" &i &"'"if nowpage=i then response.write " selected"response.write ">"&i&"</option>"nextresponse.write "</select>/"&rs.pagecount&"页"response.write "&nbsp;"&rs.pagesize&"条/页&nbsp;共"&rs.RecordCount &"条"case 2 '样式:首页 上页 下页 末页 if rs.bof then firstpage=0 else firstpage=pageif rs.pagecount=0 then lastpage=0 else lastpage=rs.pagecount nowpagenext=nowpage+1nowpageprevious=nowpage-1if nowpage=1 or rs.recordcount=0 thenResponse.Write("<font color='#809980'>首页&nbsp;上页</font> ")elseresponse.write "<a href='" &nowpath &"page=1'>首页</a>&nbsp;<a href='" &nowpath &"page=" &nowpageprevious & "'>上页</a>"end ifif nowpage=rs.pagecount thenResponse.Write("<font color='#809980'>&nbsp;下页&nbsp;末页&nbsp;</font>")elseresponse.write "&nbsp;<a href='" &nowpath &"page="&nowpagenext&"'>下页</a>&nbsp;<a href='" &nowpath &"page=" &rs.pagecount& "'>末页</a>&nbsp;"end ifcase 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.pagecountif not isnumeric(lastpage) or lastpage="" then lastpage=5 else lastpage=clng(lastpage)if lastpage>allpage then lastpage=allpageif (firstpage-1)<5 then fptemp=1:lptemp=5 else fptemp=firstpage-5:lptemp=firstpage-1if lptemp>allpage then lptemp=allpageif firstpage-1>=1 thenresponse.write "<a href='" &nowpath &"page=" &firstpage-1& "&fp="&fptemp&"&lp="&lptemp&"'>|<<</a>"for i=firstpage to lastpageif i=nowpage then response.write "&nbsp;&nbsp;"&i else response.write "&nbsp;&nbsp;<a href='" &nowpath &"page=" &i & "&fp="&firstpage&"&lp="&lastpage&"'>"&i&"</a>"nextif lastpage+5>allpage then lptemp=allpage else lptemp=lastpage+5if (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.comsnr=request("snr") '传递的查询内容if request("page")="" thencurpage=1elsecurpage=request("page")'传递的页数end ifpage_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.movenextlooprs.closeset 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)、