回 帖 发 新 帖 刷新版面

主题:[原创]最简单ASP分页程序[思顿简单ASP教学]

最近有很多网友,问我关于[b]ASP分页问题[/b],有些初学者感觉这个很不好理解,也不好做,我索性写了一个教程,供初学者参考学习。 如果有其它问题可以去[url]http://www.stasp.com[/url]去学习
或者去[url]http://www.stasp.com/bbs/[/url]进行交流
本演示程序列出了两种分页输出方式。其中提供了“上一页”“下一页”“第一页”“最后一页”的传统分页方式。  
点击这里可以下载源程序,下载地址:http://www.stasp.com/ljzh/page.rar 。

首先要明白分页原理,分页,说白了就是定义几个参数:请求页,当前页,前一页,后一页等,不要把分页想的很复杂,ODBC提供了几个现成的分页属性,让你直接利用:PageSize,AbsolutePage,pagecount等。这已经能够进行分页操作了。

以下是“test.asp”的程序源码.其中的注解,相信初学者也能看懂。  
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>  
<%  
’程序演示制作:思顿,QQ:63127313  
’本人ASP程序水平不高,欢迎共同学习,本教程欢迎转载。  
’思顿科技-专业网站制作指南,www.stasp.com  
Response.Expires =0  
mdbname="page.mdb"  
set conn=server.createobject("adodb.connection")  
conn.open "driver={microsoft access driver (*.mdb)};dbq=" &server.mappath(mdbname)  
set rs=server.createobject("adodb.recordset")  
’------设置数据库链接  
%>  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
<title>最简单ASP分页程序---思顿简单ASP教学www.stasp.com</title>  
<style type="text/css">  
<!--  
body,td,th {  
    font-family: 宋体;  
    font-size: 12px;  
}  
-->  
</style></head>  

<body>  
<table width="765" height="109"  border="1">  
  <tr align="center">  
    <td width="247" height="19">每一项</td>  
    <td width="247">第二项</td>  
    <td width="249">第三项</td>  
  </tr>   
<%   
  dim page  
  dim nowpage   
  dim nextpage   
  dim backpage  ’----------定义请求页,当前页面,下一页,上一页变量  
  page=Request("page")’--------接收当前页传给变量  
  if page="" then ’-------判断请求页是否为空,如果为空,则默认为第一页--BEGIN  
  page=1  
  else  
  page=Request("page")  
  end if           ’--------END  
  rs.open "select * from test order by id desc",conn,1,1’---读取数据库内容信息  
        rs.PageSize=5’设置每页显示条数。当前设置为5条  
      nowpage="test.asp"’-------当前页面名称,  
    nextpage=page+1’--------下一页  
        if nextpage>rs.pagecount then’-------如果下一页大于逻辑分页,则返回最后一页  
        nextpage=page  
        end if  
    backpage=page-1’------上一页  
    if backpage=0 then’---如果上一页为0,则返回上一页为第一页  
    backpage=1  
        end if  

  if not rs.eof then’------如果数据库内容不为空执行  
  rs.AbsolutePage=page’-----设置游标指针当前页为请求页  
  for i=1 to rs.PageSize’-------循环读取输出每条信息  
  %>  
  <tr align="center">  
   
    <td height="19"><%=rs("id")%><%=rs("aa")%></td>  
    <td><%=rs("bb")%></td>  
    <td><%=rs("cc")%></td>  
      
  </tr><%   
    rs.movenext  
    if rs.EOF Then Exit For  
    next  
    else  
    %>  
<tr align="center">  
    <td height="19" colspan="3"> 暂无内容</td>  
    <% end if  %>  
  </tr>  
  <tr align="center">  
    <td height="19" colspan="3">  
<%   
for i=1 to rs.pagecount ’-------第一种以行方式输出所有分页链接--begin  
if i=page then  
%>  
第<%=i%>页  
<%  
else%>  
<a href="<%=nowpage%>?page=<%=i%>">第<%=i%>页</a>  
<%  
end if  
next //end  
%>  
</td>  
  </tr>  
  <tr align="center">  
    <td height="19" colspan="3">  
<%  

if page=1 then’--------第二种以分页前进后退方式输出分页链接,  
%>  
第一页&nbsp;&nbsp;上一页 &nbsp;&nbsp;<a href="<%=nowpage%>?page=<%=nextpage%>">下一页</a>&nbsp;&nbsp;<a href="<%=nowpage%>?page=<%=rs.pagecount%>">最后一页</a>&nbsp;&nbsp; <%=page  %>页/<%=  rs.pagecount %>页&nbsp;&nbsp;&nbsp;共有<%= rs.recordcount%>条记录  
<%  
else  
   if page<>rs.pagecount then  
%>  
<a href="<%=nowpage%>?page=1"> 第一页</a> <a href="<%=nowpage%>?page=<%=backpage%>">上一页 </a>&nbsp;&nbsp;<a href="<%=nowpage%>?page=<%=nextpage%>">下一页</a>&nbsp;&nbsp;<a href="<%=nowpage%>?page=<%=rs.pagecount%>">最后一页</a>&nbsp;&nbsp; <%=page  %>页/<%=  rs.pagecount %>页&nbsp;&nbsp;&nbsp;共有<%= rs.recordcount%>条记录  
<%  
end if  
end if  
%>  
</td>  
  </tr>  
</table>  
</body>  
</html>  
点击这里可以下载源程序,下载地址: 。欢迎转载。

回复列表 (共5个回复)

沙发

大家支持呗!

板凳

CSS有错误

3 楼

呵呵,CSS没有问题,请查一下你的机子配置!

4 楼

用recordset比较简单吧

5 楼


<%
Set conn = Server.CreateObject("ADODB.Connection")    
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &server.MapPath("database.mdb")
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from content order by id desc",conn,1,1

rs.pagesize=3
page=request.QueryString("page")

if page=0 then
page=1
end if

rs.absolutepage=page
%>

大家帮我看看!尾页出现错误。应该上面的代码怎么写。谢了

我来回复

您尚未登录,请登录后再回复。点此登录或注册