利用ASP实现对表的分页浏览(上)

2016-01-29 17:37 14 1 收藏

利用ASP实现对表的分页浏览(上),利用ASP实现对表的分页浏览(上)

【 tulaoshi.com - ASP 】

    大家都知道,ASP有着强大的数据库操作能力,这与她能方便的调用ActiveX对象是密不可分的。下面我给大家介绍一种ASP利用ADO对象实现对数据库记录分页显示的方法。以下代码均在WIN98+PWS+MSACCESS环境下通过。

  在这里我主要通过ADO对象集中的Recordset对象来实现各种数据库操作的。先介绍几个用于分页显示的Recordset属性。

    PageSize:每页显示的记录数。

    PageCount:根据用户设好的PageSize和表中的总记录数,系统自动算出总页数。

    RecordCount:表中的总记录数。

    AbsolutePage:表示当前页码。如将AbsolutePage属性设为3,则当前记录移至第3页第1条(也就是第31条)。

  看到Recordset有了这几个属性后,相信大家也都觉得做一个分页显示的程序是很简单的。下面讲一下思路,所有实现这一功能的代码都放在display.asp中,按执行的顺序分别是:打开数据库及表、读取用户要求的显示方式、设定好PageSize和AbsolutePage、将内容输出到浏览器、设定好导航条。以下是代码:



<%'---------------------------打开数据库及表
set conn=server.createobject("ADODB.Connection")
filepath=server.mappath("abc.mdb") '-------假设数据库文件是"abc.mdb"
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & filepath
set rs=server.createobject("ADODB.Recordset")
rs.open "main",conn,3,2 '-------假设表的名字是"main"
%>
<%'---------------------------读取用户要求的显示方式(通过参数传递)
line=cint(request("line"))
page=cint(request("page"))
%>
<%'---------------------------按用户要求设定好显示方式
rs.PageSize=line
rs.AbsolutePage=page
%>
<%'---------------------------显示内容%>
<table width="100%" border="1">
<tr>
<%for i=0 to rs.Fields.Count-1%>
<td><%=rs.Fields(i).name%></td>
<%next%>
</tr><%'-------以上部分显示表头,即字段名%>
<%for i=1 to rs.PageSize%>
<tr>
<%for j=0 to rs.Fields.Count-1%>
<td><%=rs.Fields(j).value%></td>
<%next%>
</tr>
<%rs.movenext%>
<%if rs.eof then exit for%>
<%next%><%'-------以上部分显示表的内容%>
</table>

<%'---------------------------导航条%>
<table width=100% ><tr>
<td>
<%if page<>1 then%>
<a href=display.asp?page=1&line=<%=line%>>第一页</a>
<%else%>第一页<%end if%>

</td>
<td>
<%if page>1 then%>
<a href=display.asp?page=<%=page-1%>&line=<%=line%>>前一页</a>
<%else%>前一页<%end if%>
</td>
<td>
<%if page<rs.PageCount then%>
<a href=display.asp?page=<%=page+1%>&line=<%=line%>>
<%else%><%end if%>
</td>
<td>
<%if page<>rs.PageCount then%>
<a href=display.asp?page=<%=rs.PageCount%>&line=<%=line%>>最后一页</a>
<%else%>最后一页<%end if%>
</td><%'-------以上四项都需要进行判断:如果在第一页就不提供“第一页”和“前一页”的链接
'-------如果在最后一页就不提供“最后一页”和“后一页”的链接%>
<td>
<form method="POST" action="display.asp?line=<%=line%>">
请输入页码:<input type="text" name="page" size="3" value="<%=page%>">
</form>
</td>
<td>
<form method="POST" action="display.asp?page=<%=page%>">
请设定每页<input type="text" name="line" size="3" value="<%=line%>">行
</form>
</td><%'-------因为两个表单都只有一个表单域,所以没有提供发送按钮,直接打回车就行了%>
<td>
第<%=page%>页/总<%=rs.PageCount%>页
</td>

</tr></table>





  这只是一个最基本的程序,没有进行优化处理,也还有一些bug,下面我们一起来使它更“完美”一些。
 

来源:http://www.tulaoshi.com/n/20160129/1502187.html

延伸阅读
标签: Web开发
每次请求备份管理页面时,服务端会把所以的备份还原信息都传到客户端,然后ui.tabs将两种信息折叠起来分别显示,好在ui.tabs给我提供ajax功能,我们的每个tab可以直接应用另外一个页面 如: 代码如下: div id="container" ul lia href="#fragment-1"span备份/span/a/li lia href="Restore.aspx"span还原/span/a/li /ul /div 但...
标签: ASP
  还是第一次在CSDN写文章,本人文采和理论知识有限,写得不正确的地方欢迎指正。其实网上已经有很多ASP生成htm的文章了 ,有一种方法是ASP+XML的生成方法,虽然有一种好处就是不用程序写模版就可以直接引用原来的要生成页面源码使用,但 本人进行此方法测试时,发现其稳定性差和网速要求高(当然不是在服务器上了)。特别是虚拟空间上经常报...
标签: Web开发
在微软的ASP编程体系中,ADO对象的建立,使得从网页访问数据库成为一件易事,特别是ADO的Recordset对象使得控制数据的输出显示更为方便、自由。而在Visual InterDev6.0(以下简称VI6.0)中,由于Script Object Model(以下简称SOM)、Design-Time Control(以下简称DTC)以及Data Environment Object Model(以下简称DEOM)等对象模型的引入,使...
标签: ASP
       如何利用ASP实现邮箱访问       您在访问网站时是否会在有些页面上见到这种功能---您在可以访问此网站的同时,还可以查看您免费邮箱中是否有新邮件。这个功能是不是让您觉得很心动、很神秘呢?下面,我就用ASP来举个例子让您知道是如何实现这一功能的。     ...
标签: Web开发
今天心情有点激动,想把"关于用DW+ASP实现分页技术的参考"分享给用DW+ASP做网页的朋友们.去掉只有"第一页,前一页,下一页,最后一页"的小痛苦 。 此效果最后的显示是:第N页[共*页] 1 2 3 4 5 6 7 8 9 10 。 用DW+ASP做网页时,在绑定记录集后,代码页里马上出现以下代码: 以下是引用片段: %  Dim Recordset1  Dim Re...

经验教程

365

收藏

64
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部