主题:  分页的问题.

透明男孩

职务:普通成员
等级:2
金币:0.0
发贴:373
#12003/6/9 21:56:47
这是我编的一个小程序的一个页子.
它主要是显示某一分类的数据.
我加了一个简单的分页.
但是这个效果有问题.
我设的每页显示10个记录.
但是它不够10个数据就不能正常显示.
并且没有提示哪一行有错误.
下面是原代码:



[图书管理系统]-[分类]

















首页
<%
set show_type=server.createobject("adodb.recordset")
sql="select * from type"
show_type.open sql,conn,1,1
do while not show_type.eof
%>
| "><%=show_type("type_name")%>
<%
show_type.movenext
loop
show_type.close
set show_type=nothing
%>
 







    

    
















高级搜索
Search

































管理登陆
Login



















    








分类图书 Type.........



<% type_id=request("type_id")
     set show_book=server.createobject("adodb.recordset")
     sql="select * from data where type_id='"&type_id&"' order by book_id desc"
     show_book.open sql,conn,1,1
     if show_book.bof or show_book.eof then
     response.write "没有图书!"
     else    
     const ShowNum=10
    
     show_book.pagesize=ShowNum
     totalrecord=show_book.recordcount
     maxpage=show_book.pagecount
     requestpage=clng(request("page"))

     if requestpage="" or requestpage=0 then
requestpage=1
     end if
     if resquestpage>maxpage then
resquestpage=maxpage
     end if

     if not requestpage=1 then
     show_book.move (requestpage-1)*show_book.pagesize
     end if

     for i=1 to show_book.pagesize and not (show_book.bof or show_book.eof)%>    


























<%show_book.movenext        
        next
        end if
        show_book.close
        set show_book=nothing%>
<%=show_book("name")%>
  ID号:<%=show_book("book_id")%> 编号:<%=show_book("sn")%>    
数量:<%=show_book("number")%> 出版社:<%=show_book("from")%> 添加时间:<%=show_book("add_time")%>  
情况:
<% if show_book("loan")=ture then
         response.write "未借出"
         else
         response.write "已借出"
         end if%>
借出时间:<%=show_book("out_time")%> 归还时间:<%=show_book("in_time")%> 借阅人:<%=show_book("reder")%>
 



    



共 <%=totalrecord%> 本|共 <%=maxpage%>
页 [
<%
For i=1 to maxpage
Response.Write ""&i&" "
Next
%>
]






 





janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#22003/6/10 0:08:11

if not requestpage=1 then
show_book.move (requestpage-1)*show_book.pagesize
end if

for i=1 to show_book.pagesize and not (show_book.bof or show_book.eof)
改为
show_book.AbsolutePage=requestpage
For i=1 To show_book.PageSize
if show_book.Eof Then Exit For



透明男孩

职务:普通成员
等级:2
金币:0.0
发贴:373
#32003/6/11 21:18:56
佩服!

我加了一大堆的验证等.

还是不能解决问题.

没想到你这两句就把问题解决了.

多谢.受教了.



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#42003/6/12 18:31:58
for i=1 to show_book.pagesize and not (show_book.bof or show_book.eof)

看起来有语法错误,可能and及其后面的语句被忽略,从而造成不足pagesize时出界(eof)而出错。

你可以在do while里面做条件判断。但我还是推荐你用AbsolutePage赋值,用for循环(结构紧凑一些)



huohua

职务:普通成员
等级:1
金币:1.0
发贴:168
#52003/6/12 18:42:27
佩服呀,看的这么快,偶敬仰哦