看了一个贴,决定放一个分页函数,多种样式,可自行再添加样式。
'********************************
'功能:分页函数,可作为公共模块
'作者: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'>首页 上页</font> ")
else
response.write "<a href='" &nowpath &"page=1'>首页</a> <a href='" &nowpath &"page=" &nowpageprevious & "'>上页</a>"
end if
if nowpage=rs.pagecount then
Response.Write("<font color='#809980'> 下页 末页 </font>")
else
response.write " <a href='" &nowpath &"page="&nowpagenext&"'>下页</a> <a href='" &nowpath &"page=" &rs.pagecount& "'>末页</a> "
end if
response.write " <select name='nowpage' style='color:#A20000' onchange=" &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 " "&rs.pagesize&"条/页 共"&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'>首页 上页</font> ")
else
response.write "<a href='" &nowpath &"page=1'>首页</a> <a href='" &nowpath &"page=" &nowpageprevious & "'>上页</a>"
end if
if nowpage=rs.pagecount then
Response.Write("<font color='#809980'> 下页 末页 </font>")
else
response.write " <a href='" &nowpath &"page="&nowpagenext&"'>下页</a> <a href='" &nowpath &"page=" &rs.pagecount& "'>末页</a> "
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 then response.write "<a href='" &nowpath &"page=" &firstpage-1& "&fp="&fptemp&"&lp="&lptemp&"'>|<<</a>"
for i=firstpage to lastpage
if i=nowpage then response.write " "&i else response.write " <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 " <a href='" &nowpath &"page=" &lastpage+1& "&fp="&lastpage+1&"&lp="&lptemp&"'>>>|</a>"
end select
问题点数:100、回复次数:29Top
1 楼davery()回复于 2005-01-06 13:51:51 得分 0
来CSDN上抢了两个月的分,抢到了一个五角,最近很少上来了,上来放一个代码,顺便散点分Top
2 楼menrock(教坏细路)回复于 2005-01-06 13:52:46 得分 4
我接Top
3 楼mymyal123(风之森)回复于 2005-01-06 13:52:46 得分 4
upTop
4 楼davery()回复于 2005-01-06 14:02:21 得分 0
顶者有分啊Top
5 楼flyingsnowy((欧杨)不远万里来看楼主的帖,这是一种什么样的精神病?)回复于 2005-01-06 14:03:07 得分 4
怎么不多送上点分哇。。5555Top
6 楼flyingsnowy((欧杨)不远万里来看楼主的帖,这是一种什么样的精神病?)回复于 2005-01-06 14:03:55 得分 4
我碰到一个小问题哇。。
http://community.csdn.net/Expert/TopicView1.asp?id=3702659
帮我看一下。Top
7 楼aassdd(梦幻生)回复于 2005-01-06 17:38:21 得分 4
好~正好需要,谢谢。
先用看。Top
8 楼yxhzj(余华[学习J2EE中])回复于 2005-01-06 17:43:04 得分 4
恭喜Top
9 楼xhlin(HeaD)回复于 2005-01-06 17:44:50 得分 4
送分?Top
10 楼tatty_bad(我总是出现在该出现的地方)回复于 2005-01-06 18:24:48 得分 4
不错不错,,帮你Up。。。有了这些,就看自己怎么去做SQL查询了。Top
11 楼AppleBBS(Dicky)回复于 2005-01-06 21:33:36 得分 4
vokTop
12 楼gyzrich(南山排骨)回复于 2005-01-06 21:38:16 得分 4
我一般把分页作成类Top
13 楼yanqunli(艳群)回复于 2005-01-06 21:48:09 得分 4
太好了,我正需要借鉴这样一段代码呢,我自己做的有点小问题,看了你这个后有所启发,非常感谢!Top
14 楼csyangzy(阳阳)回复于 2005-01-07 01:20:00 得分 4
xxTop
15 楼tigerhu76(虎虎)回复于 2005-01-07 07:18:33 得分 4
markTop
16 楼blueonly(认真编程,低调生活。)回复于 2005-01-07 08:19:44 得分 4
好。Top
17 楼lawyu(雨淋漓)回复于 2005-01-07 08:34:26 得分 4
看看
jfTop
18 楼zfhdream(郑潇)回复于 2005-01-07 09:00:52 得分 4
楼主是好人啊~
大家要多学习学习~~~
THXTop
19 楼cyj920(Builder)回复于 2005-01-07 09:26:31 得分 4
强!Top
20 楼yk2004(靠靠)回复于 2005-01-07 09:43:59 得分 3
好人那!!ToT
我顶!!Top
21 楼yjb136(菜鸟一只)回复于 2005-01-07 09: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=nothingTop
22 楼flybird99(飞鸟久久)回复于 2005-01-07 10:48:13 得分 3
学习一下!Top
23 楼chencr(雨晴)回复于 2005-01-07 10:51:26 得分 3
受用Top
24 楼beaner2004(豆儿)回复于 2005-01-07 10:58:04 得分 3
ding .Top
25 楼qfacy(两袖清风)回复于 2005-01-07 13:44:34 得分 3
看看Top
26 楼yifa(爱做不做)回复于 2005-01-07 14:49:16 得分 3
一直对分页很不爽,希望你这有所帮助Top
27 楼diya(风火浪|努力学习.NET/C#)回复于 2005-01-07 15:01:26 得分 3
呵呵,接接分,看看你的这个函数如何~!Top
28 楼yvsy(一对一)回复于 2005-01-07 15:05:35 得分 3
不错的说,研究去Top
29 楼jhysky(尘土御风)回复于 2005-01-07 15:08:24 得分 3
好啊 !有机会试试这个函数!Top




