ASP分页显示的问题

下面的代码产生的分页显示不正常,显示出来的是第一页就全部把数据库里的资料调出来了,而第二页则又逐步减少,减少的数量正好是PAGESIZE所定的数量,
而我现在希望的是它显示的每一页都是平均的5条,也就是PAGESIZE所定的数目.
<!--#include file="conn.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>

<%
Set rs=Server.CreateObject("ADODB.Recordset")
Sql="Select * from 考生"
rs.open Sql,conn,1,3
rs.pagesize=5
'实现分页
if rs.Eof then
rs_total = 0
else
rs_total = rs.RecordCount
end if
dim pageno
getpageno = (Request("pageno"))
if(getpageno = "")then
pageno = 1
else
pageno = getpageno
End if
if(not rs.Eof)then
rs.AbsolutePage = pageno
%>
</head>
<body>
<div align="center">
<table width="20%" border="1">
<tr>
<td><div align="center">考号</div></td>
<td><div align="center">姓名</div></td>
<td><div align="center">总分</div></td>
<td><div align="center">性别</div></td>
</tr>

<%
DO WHILE NOT RS.BOF AND NOT RS.EOF
response.write ("<TR>")
response.write ("<TD><a href='42.asp?id=" & rs("考号") & "'>" & rs("考号") & "</a></TD>")
response.write ("<TD><a href='41.asp?id=" & rs("考号") & "'>" & rs("姓名") & "</a></TD>")
response.Write ("<TD><a href='41.asp?id=" & rs("考号") & "'>" & rs("总分") & "</a></TD>")
response.Write("<td>" & rs("性别") & "</td>")
response.write ("</TR>")
rs.movenext
LOOP

%>
</table>
</div>

</table>

<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="321" height="27" class="style4">[<%=pageno%>/<%=rs.PageCount%>] 每页<%=rs.PageSize%>条 共<%=rs_total%>条记录 </td>
<td width="476">
<div align="right" class="style4">
<%
if(pageno <> 1)then
%>
<a href="?">第一页</a>
<%
End if
if(pageno <> 1)then
%>
<a href="?pageno=<%=(pageno-1)%>">上一页</a>
<%
end if
if(instr(pageno,cstr(rs.pagecount)) = 0)then
%>
<a href="?pageno=<%=(pageno+1)%>">下一页</a>
<%
end if
if(instr(pageno,cstr(rs.pagecount)) = 0)then
%>
<a href="?pageno=<%=rs.pagecount%>">最后一页</a>
<%
end if
rs.close
Set rs = Nothing
end if
%>
</div></td>
</tr>
</table>

</body>
</html>

这只是个asp小技巧类的东西,它虽然适合在每个不同文件名里调用这个函数,但是也是有前提的,下面让我们来仔细看看其中的原委。
下面这段是基本的分页代码:
<% sql = "select……………………省略了sql语句
Set rs=Server.Createobject("ADODB.RECORDSET")
rs.Open sql, conn, 1, 1
if not rs.eof then
pages = 30 ’定义每页显示的记录数
rs.pageSize = pages ’定义每页显示的记录数
allPages = rs.pageCount’计算一共能分多少页
page = Request.QueryString("page")’通过浏览器传递的页数
’if语句属于基本的排错处理
if isEmpty(page) or Cint(page) < 1 then
page = 1
elseif Cint(page) > allPages then
page = allPages
end if
rs.AbsolutePage = page
Do while not rs.eof and pages > 0 %>
这里输出你要的内容………………
<% pages = pages - 1
rs.MoveNext
Loop
else
Response.Write("数据库暂无内容!")
End if
rs.Close
Set rs = Nothing %>

系统已经为数据分页了,下面就看看这次探讨的关键问题分页函数的定义

<% SUB pageUrl(pUrl)
Dim eUrl
txts = Request.ServerVariables("URL")
txts = left(txts,instrrev(txts,"/",len(txts))-1)
eUrl = "http://"; & Request.ServerVariables("server_name") & txts
For i =1 to allpages
txt = ""
txt = "<strong>"
txt = txt & "<a href=" & eUrl & pUrl & "page="&i & ">"
if i = Cint(Page) then txt = txt & "<font color=’bb0000’>"
txt = txt & (i)
if i = Cint(Page) then txt = txt & "</font>"
txt = txt & "</a> ‖ </strong>"
Response.Write(txt)
Next
END sub %>

把上面这个分页函数代码COPY存成一个ASP文件,在需要使用的页面里用include来引入他调用的时候只要 Call("/你调用的文件名?")就ok了,比如我的 news页面里要调用那么就是<%Call("/news.asp?")%>
温馨提示:内容为网友见解,仅供参考
无其他回答

asp与dreamweaver实现分页显示的问题
在使用ASP和Dreamweaver实现分页显示功能时,主要通过调整代码实现数据的分段展示。具体操作中,可以创建一个1行5列的表格,根据逻辑让记录只在第二列显示。接着,在程序中设置一个判断机制,每读取5条记录后自动换行,以此实现数据的分页效果。实现这一功能的关键在于代码的编写,确保按照需求正确处理数据。...

关于ASP分页后只能显示第一页内容,。。。
分页,按钮的超连有误。少“?”号 如当前页面地址是:test.asp?action=view 而你下面的分页按扭连接里没有加上这个参数,或少个问号,倒至连接地址错误。

Asp展示程序无法分页
你现在的问题可能是打开第一页没有问题,然后点击分页的时候出现这个问题。解决方法两种:第一:把那page=2后面的没用的一大串链接去掉(说明我不知道那个有用那个没用)把这段代码()<%=funpage(rslist.pagecount,lngpage,rslist.recordcount,rslist.pagesize,"&keyword="&keyword&"&anid="&anid...

asp 分页显示不足一页或者最后一页不是满页就会出现乱码access 数据库...
这个 是 因为当数据库数据不够每页最大条数的 时候才 会出现的问题 也就是 说你 的循环中有个 地方没有进行判断 我 仔细看了你 的 代码 在 < If i >= PageSize Then Exit For '如果i值已经为每页最大值,即常量页大小时,退出外层循环 Rs.MoveNext if Rs.eof then Exit For '我加的 ...

ASP 分页问题-部显示第一页
我看了下,问题应该出在这里 PageCount=(PageCount+PageSize-1)\\PageSize 赋值语句右边的PageCount是不是错了,应该是rs.recordcount才对吧?我在本机调试了下,改成了:PageCount=rs.recordcount\\PageSize if rs.recordcount mod PageSize>0 then PageCount=PageCount+1 end if 这样就实现分页了。

ASP分页问题(每页的页码显示个数)
action=request.QueryString("action")Const MaxPerPage=10 '定义每页显示记录数,可根据实际自定义 dim totalPut dim CurrentPage dim TotalPages dim j dim sql if Not isempty(request("page")) then currentPage=Cint(request("page"))else currentPage=1 end if '===分页定义结束%> <% '=...

asp分页问题。我需要一行显示三个图片,每页显示9个图片。可是结果,第...
最外层的循环 For i = 1 To pageSize 要去掉,因为里面的两层循环已经显示3*3=9个了,外面再从第一条记录循环到最后一个记录,那么整个数据表就要显示记录总数的九倍了!

asp分页显示,第一页时就把全部显示出来了,第二页却显示开始的记录到倒...
ASP分页技术的代码 '每页记录数,自己定义 const maxperpage=10 rs.pagesize=maxperpage '总记录数,直接得到 totalput=rs.recordcount '总页数,计算得到 if (totalput mod maxperpage = 0) then n=totalput \\ maxperpage else n=totalput \\ maxperpage + 1 end if '当前页的确定 if request...

ASP 数字分页问题??
大概看了一下你的代码,这是一个简单的,而且不完整的分页 大概功能就是,用数字显示当前页之前2个和当前页之后两个及当前页,共五个数字(代表“页”),如果前面数字(从1开始算)不够或等于2个,那么不显示“上一主题”,如果后面数字不够2个(从总页数开始减着算),那么不显示“下一主题”...

asp分页问题,点下一页时候显示为空
end if if kd="" then sql=sql&"and p_class = '"+lb+"' and Price = '"+sf+"'"end if sql=sql&"order by Price desc"4、检查你的条件是否正确 5、分页需不需要条件 <a href="yls_search.asp?page=<%=intpage -1%>&sf="&request("sf")&"&kd="&request("kd")&""> ...

相似回答
大家正在搜