完美的ASP分页脚本代码
直接写成函数的形式,如果输出生成好的页码,然后又程序输出或保存到文件中。
前十页为一批,第十页显示1,2,3…10;第十一页页码就变成了11,12…20
这种模式很多CMS都用到,比如5UCMS。函数名留点版权信息吧,cs=CatSeven
<% functioncsPage(id,all,url1,url2) ifid<>1thentmp="首页 上一页" istart=((id-1)\10)*10+1 if(all-id)>9then iend=((id-1)\10)*10+10 else iend=all endif fori=istarttoiend ifi=idthen tmp=tmp&""&i&"" else tmp=tmp&" "&i&"" endif next ifid<>allthentmp=tmp&" 下一页 尾页" csPage=tmp endfunction 'DEBUG forj=1to40 response.write"#Page"&j&":"&csPage(j,40,"#TEST_","_View")&"
" next %>
生成效果如下:
#Page1:12345678910下一页尾页
#Page2:首页上一页12345678910下一页尾页
#Page3:首页上一页12345678910下一页尾页
#Page4:首页上一页12345678910下一页尾页
#Page5:首页上一页12345678910下一页尾页
#Page6:首页上一页12345678910下一页尾页
#Page7:首页上一页12345678910下一页尾页
#Page8:首页上一页12345678910下一页尾页
#Page9:首页上一页12345678910下一页尾页
#Page10:首页上一页12345678910下一页尾页
#Page11:首页上一页11121314151617181920下一页尾页
#Page12:首页上一页11121314151617181920下一页尾页
#Page13:首页上一页11121314151617181920下一页尾页
#Page14:首页上一页11121314151617181920下一页尾页
#Page15:首页上一页11121314151617181920下一页尾页
#Page16:首页上一页11121314151617181920下一页尾页
#Page17:首页上一页11121314151617181920下一页尾页
#Page18:首页上一页11121314151617181920下一页尾页
#Page19:首页上一页11121314151617181920下一页尾页
#Page20:首页上一页11121314151617181920下一页尾页
#Page21:首页上一页21222324252627282930下一页尾页
#Page22:首页上一页21222324252627282930下一页尾页
#Page23:首页上一页21222324252627282930下一页尾页
#Page24:首页上一页21222324252627282930下一页尾页
#Page25:首页上一页21222324252627282930下一页尾页
#Page26:首页上一页21222324252627282930下一页尾页
#Page27:首页上一页21222324252627282930下一页尾页
#Page28:首页上一页21222324252627282930下一页尾页
#Page29:首页上一页21222324252627282930下一页尾页
#Page30:首页上一页21222324252627282930下一页尾页
#Page31:首页上一页31323334353637383940下一页尾页
#Page32:首页上一页31323334353637383940下一页尾页
#Page33:首页上一页31323334353637383940下一页尾页
#Page34:首页上一页31323334353637383940下一页尾页
#Page35:首页上一页31323334353637383940下一页尾页
#Page36:首页上一页31323334353637383940下一页尾页
#Page37:首页上一页31323334353637383940下一页尾页
#Page38:首页上一页31323334353637383940下一页尾页
#Page39:首页上一页31323334353637383940下一页尾页
#Page40:首页上一页31323334353637383940
说实话我并不是很喜欢这种分页方式,我比较喜欢上次写的那个。
如果不超过10页,比如共5页。1,2,3,4,5;
如果最末页减当前页码不超过十,页码显示最后10页;
其他的是前四后五的方法。直接给出代码吧
functioncsPage1(id,all,url1,url2) ifid<>1thentmp="首页 上一页" ifall<10orid<10then istart=1 ifall<10theniend=allelseiend=10 elseifall-id<10then istart=all-10 iend=all else istart=id-4 iend=id+5 endif fori=istarttoiend ifi=idthen tmp=tmp&""&i&"" else tmp=tmp&" "&i&"" endif next ifid<>allthentmp=tmp&" 下一页 尾页" csPage1=tmp endfunction forj=1to40 response.write"#Page"&j&":"&csPage1(j,40,"#TEST_","_View")&"
" next
生成效果如下:
#Page1:12345678910下一页尾页
#Page2:首页上一页12345678910下一页尾页
#Page3:首页上一页12345678910下一页尾页
#Page4:首页上一页12345678910下一页尾页
#Page5:首页上一页12345678910下一页尾页
#Page6:首页上一页12345678910下一页尾页
#Page7:首页上一页12345678910下一页尾页
#Page8:首页上一页12345678910下一页尾页
#Page9:首页上一页12345678910下一页尾页
#Page10:首页上一页6789101112131415下一页尾页
#Page11:首页上一页78910111213141516下一页尾页
#Page12:首页上一页891011121314151617下一页尾页
#Page13:首页上一页9101112131415161718下一页尾页
#Page14:首页上一页10111213141516171819下一页尾页
#Page15:首页上一页11121314151617181920下一页尾页
#Page16:首页上一页12131415161718192021下一页尾页
#Page17:首页上一页13141516171819202122下一页尾页
#Page18:首页上一页14151617181920212223下一页尾页
#Page19:首页上一页15161718192021222324下一页尾页
#Page20:首页上一页16171819202122232425下一页尾页
#Page21:首页上一页17181920212223242526下一页尾页
#Page22:首页上一页18192021222324252627下一页尾页
#Page23:首页上一页19202122232425262728下一页尾页
#Page24:首页上一页20212223242526272829下一页尾页
#Page25:首页上一页21222324252627282930下一页尾页
#Page26:首页上一页22232425262728293031下一页尾页
#Page27:首页上一页23242526272829303132下一页尾页
#Page28:首页上一页24252627282930313233下一页尾页
#Page29:首页上一页25262728293031323334下一页尾页
#Page30:首页上一页26272829303132333435下一页尾页
#Page31:首页上一页3031323334353637383940下一页尾页
#Page32:首页上一页3031323334353637383940下一页尾页
#Page33:首页上一页3031323334353637383940下一页尾页
#Page34:首页上一页3031323334353637383940下一页尾页
#Page35:首页上一页3031323334353637383940下一页尾页
#Page36:首页上一页3031323334353637383940下一页尾页
#Page37:首页上一页3031323334353637383940下一页尾页
#Page38:首页上一页3031323334353637383940下一页尾页
#Page39:首页上一页3031323334353637383940下一页尾页
#Page40:首页上一页3031323334353637383940
上面的代码在2009-2010年写过简单个两个分页(调取页码的函数):
现在看有点乱了,最近有重新整理了下代码,重写了ASP的分页代码,生成的分页代码兼容BootStrap。代码如下:
'PageinationRecordSet如果返回false,说明Adodb.RecrodSet集为空 'RecordSetAdodb.RecrodSet集 'PageId当前所在页 'PageSize每页显示多少条? '*PageCount返回页码总数 functionPageinationRecordSet(byrefRecordSet,byrefPageId,byvalPageSize,byrefPageCount) ifRecordSet.eofthen PageinationRecordSet=false else RecordSet.PageSize=PageSize PageCount=RecordSet.PageCount ifPageId>PageCountthenPageId=PageCount RecordSet.absolutePage=PageId PageinationRecordSet=true endif endfunction 'PageId当前所在页 'PageCount页码总数 'urlTemplate链接模板 functionPageinationPageList(byvalPageId,byvalPageCount,byvalurlTemplate) dimcodeTemp,iPage ifPageCount>0then codeTemp="" ifPageId<=1thencodeTemp=codeTemp&" "elsecodeTemp=codeTemp&" " codeTemp=codeTemp&" " ifPageId<=1thencodeTemp=codeTemp&"首页 "elsecodeTemp=codeTemp&" " codeTemp=codeTemp&" " foriPage=PageId-5toPageId+5 ifiPage=PageIdthen codeTemp=codeTemp&"上一页 "&iPage&"" elseifiPage 0then codeTemp=codeTemp&" " elseifiPage>PageIdandiPage<=PageCountthen codeTemp=codeTemp&" "&iPage&" " endif next ifPageId>=PageCountthencodeTemp=codeTemp&" "&iPage&" "elsecodeTemp=codeTemp&" " codeTemp=codeTemp&" " ifPageId>=PageCountthencodeTemp=codeTemp&"下一页 "elsecodeTemp=codeTemp&" " codeTemp=codeTemp&" " PageinationPageList=codeTemp&"" endif endfunction尾页
测试代码:
pgId=Request.QueryString("pageid")'当前页码 pgSize=10'每页大小 rsId=0 Rs.OpenQuery,Conn,1,1 ifPageinationRecordSet(Rs,pgId,pgSize,pgCount)then dowhilenotRs.EofandrsId到此这篇关于完美的ASP分页脚本代码的文章就介绍到这了,更多相关ASP分页内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。