一个ASP分页的代码,到最后一页时,就出问题

guda9sex0 2013-12-16 08:43:19
但是只要点到最后一页,页码显示的地方就只显示当前页面,其它的页码图标全部不见了,不知道该如何解决:
除了最后一页,都没问题。
代码如下:

<% '记录集RS,已经取得
shownum=10 '每页显示条数
totalrecord=rs.recordcount '总记录条数
rs.pagesize=shownum '每页显示条数
maxpage=rs.pagecount '总记录条数
requestpage=clng(request.querystring("page")) ‘取得浏览器地址栏当前页码数
if requestpage="" or requestpage=0 then
requestpage=1
end if
if resquestpage>maxpage then
resquestpage=maxpage
end if
if not requestpage=1 then
rs.move (requestpage-1)*rs.pagesize
end if
for i=1 to rs.pagesize and not rs.bof
%>
<%=rs("title")%>"><%=rs("title")%>
<hr />
<%
rs.movenext
if rs.eof then exit for
next
%>
<br />
<div style="text-align: center;float: none;overflow: hidden;">
<% '开始显示分页样式
if requestpage-1 mod 10=0 then
p=(requestpage-1) \ 10
else
p=(requestpage-1) \ 10
end if
if requestpage=1 then
response.write "<font face=webdings color=""#00FF00"">9</font>"
else
response.write "<a href=?page=1 title=首页><font face=webdings>9</font></a>"
end if
if p*10>0 then response.write "<a href=?page="&p*10&" title=上十页><font face=webdings>7</font></a>"
response.write "<b>"
for ii=p*10+1 to P*10+10
if ii=requestpage then
response.write "<font color=""#00FF00"">"&ii&"</font> "
else
response.write "<a href=?sid="& rs("sid") &"&page="&ii&">"&ii&"</a> "
end if
if ii=maxpage then exit for
next
response.write "</b>"
if ii<maxpage then response.write "<a href=?page="&ii&" title=下十页><font face=webdings>8</font></a>"'客户端必须有“webdings.ttf”这个字体文件,支持!否则显示不出来!不支持火狐浏览器
if requestpage=maxpage then
response.write "<font face=webdings color=""#00FF00"">:</font> "
else
response.write "<a href=?page="&maxpage&" title=尾页><font face=webdings>:</font></a>"
end if
response.write" 总共有"&maxpage&"页 共"&totalrecord&"个记录 每页"&shownum&"个"
%>

...全文
264 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
aloesky 2014-01-04
  • 打赏
  • 举报
回复
<% '记录集RS,已经取得 shownum=10 '每页显示条数 totalrecord=rs.recordcount '总记录条数 rs.pagesize=shownum '每页显示条数 maxpage=rs.pagecount '总记录条数 requestpage=clng(request.querystring("page")) ‘取得浏览器地址栏当前页码数 if requestpage="" or requestpage=0 then requestpage=1 end if if resquestpage>maxpage then resquestpage=maxpage end if if not requestpage=1 then rs.move (requestpage-1)*rs.pagesize end if for i=1 to rs.pagesize and not rs.bof %> <%=rs("title")%> <hr /> <% rs.movenext if rs.eof then exit for next %> <br /> <div style="text-align: center;float: none;overflow: hidden;"> <% '开始显示分页样式 if requestpage-1 mod 10=0 then p=(requestpage-1) \ 10 else p=(requestpage-1) \ 10 end if '红色字体部分完全一样,那么楼主的这个if可以删除了 if requestpage=1 then ‘如果当前页为1 response.write "<font face=webdings color=""#00FF00"">9</font>" else response.write "<a href=?page=1 title=首页><font face=webdings>9</font></a>" end if if p*10>0 then response.write "<a href=?page="&p*10&" title=上十页><font face=webdings>7</font></a>" response.write "<b>" for ii=p*10+1 to P*10+10 if ii=requestpage then response.write "<font color=""#00FF00"">"&ii&"</font> " else response.write "<a href=?sid="& rs("sid") &"&page="&ii&">"&ii&"</a> " end if if ii=maxpage then exit for next response.write "</b>" if ii<maxpage then response.write "<a href=?page="&ii&" title=下十页><font face=webdings>8</font></a>"'客户端必须有“webdings.ttf”这个字体文件,支持!否则显示不出来!不支持火狐浏览器 if requestpage=maxpage then response.write "<font face=webdings color=""#00FF00"">:</font> " else response.write "<a href=?page="&maxpage&" title=尾页><font face=webdings>:</font></a>" end if response.write" 总共有"&maxpage&"页 共"&totalrecord&"个记录 每页"&shownum&"个" %>
  • 打赏
  • 举报
回复
引用 8 楼 ww_super 的回复:
我加了连接数据库的,所以报错显示在48行了,就是楼主的44行,把rs("sid")改掉就显示正常了
记录集没有关闭之前使用都不会显示错误的,你那个错了是因为你关闭了记录集再使用当然错了
guda9sex0 2013-12-25
  • 打赏
  • 举报
回复
引用 8 楼 ww_super 的回复:
我加了连接数据库的,所以报错显示在48行了,就是楼主的44行,把rs("sid")改掉就显示正常了
rs("sid")没有错误。这是显示文章大类分类的id,前面版主说的对,RS没有关闭,就会有这个值,因为RS只是一个记录集,参与for循环而已。
宁静志远 2013-12-17
  • 打赏
  • 举报
回复

我加了连接数据库的,所以报错显示在48行了,就是楼主的44行,把rs("sid")改掉就显示正常了
宁静志远 2013-12-17
  • 打赏
  • 举报
回复
直接写个通过p参数来做个循环,就去取记录集里字段的值,不太可能吧。。。而且这个我是本地模拟建了数据库测试过的,你可以测试下
宁静志远 2013-12-17
  • 打赏
  • 举报
回复
这个不是说的。。。虽然有for循环,但要在记录集的循环里才行啊
  • 打赏
  • 举报
回复
再者说了,他说只有最后一页有问题 他rs没有关闭,这么写是没有错误的,顶多就是没有值或者默认最后一个值 不会显示错误
  • 打赏
  • 举报
回复
引用 3 楼 ww_super 的回复:
前面的逻辑虽然有问题,但不是这个报错的原因!错误的地方在44行,


response.write "<a href=?sid="& rs("sid") &"&page="&ii&">"&ii&"</a>   "  

把sid="&rs("sid")&"去掉应该就好了,不知道你为什么要串上sid这个参数,但这里有多条记录,又不在循环里面,显然在这个地方不能这么写rs("sid"),所以报错了,只显示else上面的带颜色的本页链接。。。
你看错了吧,那个44行明明在for循环里
宁静志远 2013-12-17
  • 打赏
  • 举报
回复
前面的逻辑虽然有问题,但不是这个报错的原因!错误的地方在44行,


response.write "<a href=?sid="& rs("sid") &"&page="&ii&">"&ii&"</a>   "  

把sid="&rs("sid")&"去掉应该就好了,不知道你为什么要串上sid这个参数,但这里有多条记录,又不在循环里面,显然在这个地方不能这么写rs("sid"),所以报错了,只显示else上面的带颜色的本页链接。。。
  • 打赏
  • 举报
回复
引用 楼主 guda9sex0 的回复:
但是只要点到最后一页,页码显示的地方就只显示当前页面,其它的页码图标全部不见了,不知道该如何解决: 除了最后一页,都没问题。 代码如下:

<% '记录集RS,已经取得
   shownum=10 '每页显示条数  
   totalrecord=rs.recordcount  '总记录条数 
   rs.pagesize=shownum   '每页显示条数 
   maxpage=rs.pagecount  '总记录条数  
   requestpage=clng(request.querystring("page"))  ‘取得浏览器地址栏当前页码数 
   if requestpage="" or requestpage=0 then   
      requestpage=1   
   end if   
   if resquestpage>maxpage then   
      resquestpage=maxpage   
   end if   
   if not requestpage=1 then   
      rs.move (requestpage-1)*rs.pagesize   
   end if   
   for i=1 to rs.pagesize and not rs.bof
%>
	  <%=rs("title")%>"><%=rs("title")%>
	  <hr />
<%
rs.movenext
if rs.eof then exit for
next
%>
        <br />
	    <div style="text-align: center;float: none;overflow: hidden;">	  
<%   '开始显示分页样式
   if requestpage-1 mod 10=0 then   
    p=(requestpage-1) \ 10   
   else   
    p=(requestpage-1) \ 10   
   end if   
   if requestpage=1 then   
    response.write "<font face=webdings color=""#00FF00"">9</font>"   
   else   
    response.write "<a href=?page=1 title=首页><font face=webdings>9</font></a>"   
   end if   
   if p*10>0 then response.write "<a href=?page="&p*10&" title=上十页><font face=webdings>7</font></a>"   
      response.write "<b>"   
      for ii=p*10+1 to P*10+10   
         if ii=requestpage then   
           response.write "<font color=""#00FF00"">"&ii&"</font> "   
         else   
           response.write "<a href=?sid="& rs("sid") &"&page="&ii&">"&ii&"</a>   "   
         end if   
         if ii=maxpage then exit for   
         next   
            response.write "</b>"   
            if ii<maxpage then response.write "<a href=?page="&ii&" title=下十页><font face=webdings>8</font></a>"'客户端必须有“webdings.ttf”这个字体文件,支持!否则显示不出来!不支持火狐浏览器
               if requestpage=maxpage then   
                  response.write "<font face=webdings color=""#00FF00"">:</font>   "   
               else   
                  response.write "<a href=?page="&maxpage&" title=尾页><font face=webdings>:</font></a>"   
               end if   
               response.write"    总共有"&maxpage&"页   共"&totalrecord&"个记录   每页"&shownum&"个" 
%>

其实 if p*10>0 then response.write "<a href=?page="&p*10&" title=上十页><font face=webdings>7</font></a>" 这个语句也有点逻辑问题,这个除了第一页不显示上十页,其他的时候都显示,从实际意义上讲,你这个应该是当前页大于10页的时候才显示这个
  • 打赏
  • 举报
回复
这个程序写的逻辑不知道该怎么说了 if requestpage-1 mod 10=0 then p=(requestpage-1) \ 10 else p=(requestpage-1) \ 10 end if 首先这个地方,现在这样做有必要用if语句么? 从你的程序逻辑上看,当最后一页时最后剩下的应该是 response.write "<a href=?page=1 title=首页><font face=webdings>9</font></a>" response.write "<font color=""#00FF00"">"&ii&"</font> " response.write "<font face=webdings color=""#00FF00"">:</font> " response.write" 总共有"&maxpage&"页 共"&totalrecord&"个记录 每页"&shownum&"个" 这4个语句 而if p*10>0 then response.write "<a href=?page="&p*10&" title=上十页><font face=webdings>7</font></a>" 这语句就要看你的p是否等于0才决定是否显示
yangtututu 2013-12-17
  • 打赏
  • 举报
回复
最好先赋值给变量 然后判断 空值 合法 再连接字符串

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧