凹丫丫网络社区's Archiver

Amm 发表于 2008-5-14 12:54

用ASP做一个分页程序

你是否为了你的站点文章过多而反复做链接上一页、下一页这些烦琐的工作发愁呢?现在有了ASP,只要你的主页支持ASP,你就可以很简单的实现对文章的管理了,排序、链接、显示这些工作都让ASP去完成吧!这么轻松的主页维护,你是不是也想试一试呢? <BR>&nbsp;&nbsp; <BR>&nbsp; 请看以下实现ASP分页程序的代码: <BR>&nbsp;&nbsp; <BR>&nbsp; &lt;anguage="vbscript" <BR>&nbsp;&nbsp; <BR>&nbsp; dim conn <BR>&nbsp;&nbsp; <BR>&nbsp; dim connstr <BR>&nbsp;&nbsp; <BR>&nbsp; dim totalPut <BR>&nbsp;&nbsp; <BR>&nbsp; dim CurrentPage <BR>&nbsp;&nbsp; <BR>&nbsp; dim TotalPages <BR>&nbsp;&nbsp; <BR>&nbsp; dim i,j <BR>&nbsp;&nbsp; <BR>&nbsp; dim sql <BR>&nbsp;&nbsp; <BR>&nbsp; dim rs <BR>&nbsp;&nbsp; <BR>&nbsp; on error resume next <BR>&nbsp;&nbsp; <BR>&nbsp; '打开数据库 <BR>&nbsp;&nbsp; <BR>&nbsp; connstr="DBQ="+server.mappath("book.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" <BR>&nbsp;&nbsp; <BR>&nbsp; set conn=server.createobject("ADODB.CONNECTION") <BR>&nbsp;&nbsp; <BR>&nbsp; conn.open connstr <BR>&nbsp;&nbsp; <BR>&nbsp; set rs=server.createobject("adodb.recordset") <BR>&nbsp;&nbsp; <BR>&nbsp; '定义每页文章显示数 <BR>&nbsp;&nbsp; <BR>&nbsp; const MaxPerPage=18 <BR>&nbsp;&nbsp; <BR>&nbsp; if not isempty(request("page")) then <BR>&nbsp;&nbsp; <BR>&nbsp; currentPage=cint(request("page")) <BR>&nbsp;&nbsp; <BR>&nbsp; else <BR>&nbsp;&nbsp; <BR>&nbsp; currentPage=1 <BR>&nbsp;&nbsp; <BR>&nbsp; end if <BR>&nbsp;&nbsp; <BR>&nbsp; sql="select * from learning order by articleid desc" <BR>&nbsp;&nbsp; <BR>&nbsp; Set rs= Server.CreateObject("ADODB.Recordset") <BR>&nbsp;&nbsp; <BR>&nbsp; rs.open sql,conn,1,1 <BR>&nbsp;&nbsp; <BR>&nbsp; if rs.eof and rs.bof then <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;p align='center'&gt; 还 没 有 任 何 文 章&lt;/p&gt;" <BR>&nbsp;&nbsp; <BR>&nbsp; else <BR>&nbsp;&nbsp; <BR>&nbsp; '数据库中文章数totalput <BR>&nbsp;&nbsp; <BR>&nbsp; totalPut=rs.recordcount <BR>&nbsp;&nbsp; <BR>&nbsp; if currentpage&lt;1 then <BR>&nbsp;&nbsp; <BR>&nbsp; currentpage=1 <BR>&nbsp;&nbsp; <BR>&nbsp; end if <BR>&nbsp;&nbsp; <BR>&nbsp; '统计总页数currentpage <BR>&nbsp;&nbsp; <BR>&nbsp; if (currentpage-1)*MaxPerPage&gt;totalput then <BR>&nbsp;&nbsp; <BR>&nbsp; if (totalPut mod MaxPerPage)=0 then <BR>&nbsp;&nbsp; <BR>&nbsp; currentpage= totalPut \ MaxPerPage <BR>&nbsp;&nbsp; <BR>&nbsp; else <BR>&nbsp;&nbsp; <BR>&nbsp; currentpage= totalPut \ MaxPerPage + 1 <BR>&nbsp;&nbsp; <BR>&nbsp; end if <BR>&nbsp;&nbsp; <BR>&nbsp; end if <BR>&nbsp;&nbsp; <BR>&nbsp; if currentPage=1 then <BR>&nbsp;&nbsp; <BR>&nbsp; showpage totalput,MaxPerPage,"index.asp" <BR>&nbsp;&nbsp; <BR>&nbsp; showContent <BR>&nbsp;&nbsp; <BR>&nbsp; showpage totalput,MaxPerPage,"index.asp" <BR>&nbsp;&nbsp; <BR>&nbsp; else <BR>&nbsp;&nbsp; <BR>&nbsp; if (currentPage-1)*MaxPerPage&lt;totalPut then <BR>&nbsp;&nbsp; <BR>&nbsp; rs.move (currentPage-1)*MaxPerPage <BR>&nbsp;&nbsp; <BR>&nbsp; dim bookmark <BR>&nbsp;&nbsp; <BR>&nbsp; bookmark=rs.bookmark <BR>&nbsp;&nbsp; <BR>&nbsp; showpage totalput,MaxPerPage,"index.asp" <BR>&nbsp;&nbsp; <BR>&nbsp; showContent <BR>&nbsp;&nbsp; <BR>&nbsp; showpage totalput,MaxPerPage,"index.asp" <BR>&nbsp;&nbsp; <BR>&nbsp; else <BR>&nbsp;&nbsp; <BR>&nbsp; currentPage=1 <BR>&nbsp;&nbsp; <BR>&nbsp; showpage totalput,MaxPerPage,"index.asp" <BR>&nbsp;&nbsp; <BR>&nbsp; showContent <BR>&nbsp;&nbsp; <BR>&nbsp; showpage totalput,MaxPerPage,"index.asp" <BR>&nbsp;&nbsp; <BR>&nbsp; end if <BR>&nbsp;&nbsp; <BR>&nbsp; end if <BR>&nbsp;&nbsp; <BR>&nbsp; rs.close <BR>&nbsp;&nbsp; <BR>&nbsp; end if <BR>&nbsp;&nbsp; <BR>&nbsp; set rs=nothing <BR>&nbsp;&nbsp; <BR>&nbsp; conn.close <BR>&nbsp;&nbsp; <BR>&nbsp; set conn=nothing <BR>&nbsp;&nbsp; <BR>&nbsp; sub showContent <BR>&nbsp;&nbsp; <BR>&nbsp; dim i <BR>&nbsp;&nbsp; <BR>&nbsp; i=0 <BR>&nbsp;&nbsp; <BR>&nbsp; do while not rs.eof <BR>&nbsp;&nbsp; <BR>&nbsp; &gt; <BR>&nbsp;&nbsp; <BR>&nbsp; '选择显示数据库内容 <BR>&nbsp;&nbsp; <BR>&nbsp; &lt;a href="openarticle.asp?id=&lt;=rs("articleid")&gt;"&gt;&lt;=rs("title")&gt;&lt;/a&gt;[点击:&lt;=rs("hits")&gt;]&lt;br&gt; <BR>&nbsp;&nbsp; <BR>&nbsp; &lt; <BR>&nbsp;&nbsp; <BR>&nbsp; '当显示记录大于maxperpage时结束这页 <BR>&nbsp;&nbsp; <BR>&nbsp; i=i+1 <BR>&nbsp;&nbsp; <BR>&nbsp; if i&gt;=MaxPerPage then exit do <BR>&nbsp;&nbsp; <BR>&nbsp; rs.movenext <BR>&nbsp;&nbsp; <BR>&nbsp; loop <BR>&nbsp;&nbsp; <BR>&nbsp; end sub <BR>&nbsp;&nbsp; <BR>&nbsp; function showpage(totalnumber,maxperpage,filename) <BR>&nbsp;&nbsp; <BR>&nbsp; '求出当每页18篇文章时总共的页数 <BR>&nbsp;&nbsp; <BR>&nbsp; dim n <BR>&nbsp;&nbsp; <BR>&nbsp; if totalnumber mod maxperpage=0 then <BR>&nbsp;&nbsp; <BR>&nbsp; n= totalnumber \ maxperpage <BR>&nbsp;&nbsp; <BR>&nbsp; else <BR>&nbsp;&nbsp; <BR>&nbsp; n= totalnumber \ maxperpage+1 <BR>&nbsp;&nbsp; <BR>&nbsp; end if <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;form method=Post action="&amp;filename&amp;"&gt;" <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;p align='center'&gt;&lt;font color='#000080'&gt;&gt;&gt;分页&lt;/font&gt; " <BR>&nbsp;&nbsp; <BR>&nbsp; '显示页数链接的条件 <BR>&nbsp;&nbsp; <BR>&nbsp; if CurrentPage&lt;2 then <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;font color='#000080'&gt;首页 上一页&lt;/font&gt; " <BR>&nbsp;&nbsp; <BR>&nbsp; else <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;a href="&amp;filename&amp;"?page=1&amp;&gt;首页&lt;/a&gt; " <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;a href="&amp;filename&amp;"?page="&amp;CurrentPage-1&amp;"&gt;上一页&lt;/a&gt; " <BR>&nbsp;&nbsp; <BR>&nbsp; end if <BR>&nbsp;&nbsp; <BR>&nbsp; if n-currentpage&lt;1 then <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;font color='#000080'&gt;下一页 尾页&lt;/font&gt;" <BR>&nbsp;&nbsp; <BR>&nbsp; else <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;a href="&amp;filename&amp;"?page="&amp;(CurrentPage+1) <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&gt;下一页&lt;/a&gt; &lt;a href="&amp;filename&amp;"?page="&amp;n&amp;"&gt;尾页&lt;/a&gt;" <BR>&nbsp;&nbsp; <BR>&nbsp; end ifc <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;font color='#000080'&gt; 页次:&lt;/font&gt;&lt;strong&gt;&lt;font color=red&gt;"&amp;CurrentPage&amp;"&lt;/font&gt;&lt;font color='#000080'&gt;/"&amp;n&amp;"&lt;/strong&gt;页&lt;/font&gt;" <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;font color='#000080'&gt; 共&lt;b&gt;"&amp;totalnumber&amp;"&lt;/b&gt;篇文章 &lt;b&gt;"&amp;maxperpage&amp;"&lt;/b&gt;篇文章/页&lt;/font&gt;" <BR>&nbsp;&nbsp; <BR>&nbsp; response.write " &lt;font color='#000080'&gt;转到:&lt;/font&gt;&lt;input type='text' name='page' size=4 maxlength=10 class=smallInput value="¤tpage&amp;"&gt;" <BR>&nbsp;&nbsp; <BR>&nbsp; response.write "&lt;input class=buttonface type='submit' value=' Goto ' name='cndok'&gt;&lt;/span&gt;&lt;/p&gt;&lt;/form&gt;" <BR>&nbsp;&nbsp; <BR>&nbsp; end function <BR>&nbsp;&nbsp; <BR>&nbsp; &gt; <BR>&nbsp;&nbsp; <BR>&nbsp;   以上代码很简单的就实现了ASP网页的多种分页功能,不论是对浏览者还是管理者都能很方便的浏览和管理,我只在相关部分作了一些解释,象这个ASP程序还必须有数据库的支持才可以,关于数据库的问题我就不详述了

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2007 Comsenz Inc.