• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

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

发布: 2007-6-30 18:56 | 作者: admin | 来源: | 查看: 12次 | 进入软件测试论坛讨论

领测软件测试网 大家都知道,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,下面我们一起来使它更“完美”一些。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网