在线等:关于asp的分页问题
从网络上找的一个分页函数,我调用的时候只能第一页能显示,其它页都无法显示。哪位帮我看下我的调用中哪出了问题。
同时不知道这个querry要设置的值是什么。
<!--#include file= "conn.asp "-->
<!--#include file= "inc/page_list.asp "-->
<%
set plist=new page_list
set rs=server.createobject( "adodb.recordset ")
sql= "select * from news "
rs.open sql,conn,3,1
plist.CalcPage totalrec,msg_per_page,currentpage,n,rowcount,rs
while not Rs.eof and rowcount> 0
response.write rs(0)& ". "&rs(1)& " <br> "
Rs.movenext
rowcount=rowcount-1
wend
response.write " <br> "
ListType= "1 "
url= " "
querry= " "
separator= "| "
ListLink= " "
plist.PageList ListType,url,querry,Separator,ListLink
%>
==============
page_list.asp
==============
<%
class Page_List
private Sub Class_Initialize
Version= "ASP分页类 Version 1.0 "
end sub
Private Sub Class_Terminate
Version= " "
end sub
'分页函数分为两个函数
'CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs) 分页计算函数
'PageList(ListType,url,querry,Separator,ListLink) 分页列表函数
'分页计算函数
'totalrec 记录集总数
'msg_per_page 每页显示的记录数,在调用CalcPage时需提前对该变量赋值
'currentpage 当前页变量,在调用CalcPage时需提前对该变量赋值
'n 总页数
'rowcount 设置每一页的数据记录数
'PageRs 记录集对象
public sub CalcPage(totalrec,msg_per_page,currentpage,n,rowcount,PageRs)
n=0 '设置无记录时页数为0
totalrec=0
if msg_per_page= " " then msg_per_page=1
if currentpage= " " then currentpage=0
'PageRs.EOF and PageRs.bof 无记录
'Not PageRs.EOF Or Not PageRs.BOF 有记录
if Not PageRs.EOF Or Not PageRs.BOF then
totalrec=PageRs.recordcount
PageRs.pagesize=msg_per_page
if totalrec mod msg_per_page = 0 then '计算总页数,recordcount:数据的总记录数
n = totalrec\msg_per_page 'n:总页数
else
n = totalrec\msg_per_page+1
end if
if not isnumeric(currentpage) or currentpage= " " then currentpage=1
if currentpage <> " " then
currentpage = cint(currentpage)
end if
if currentpage < 1 then
currentpage = 1
end if
if currentpage*msg_per_page > totalrec and not((currentpage-1)*msg_per_page < totalrec) then
currentPage=1
end if
PageRs.absolutepage = currentpage 'absolutepage:设置指针指向某页开头
rowcount = PageRs.pagesize 'pagesize:设置每一页的数据记录数
else
currentpage=0
end if
end sub
'分页列表函数
'url 跳转的地址
'querry ?后的参数
'Separator 分隔符
'ListType 分页类型
'类型:0 "第一页 | 前一页 | 下一页 | 最后页 "
'类型:1 "1 | 2 | 3 | 4 | ..........| 下一页 "
'类型:2 "第一页 | 前十页 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 后十页 | 最后页 "
'ListLink 链接使用的样式
public sub PageList(ListType,url,querry,Separator,ListLink)
if Separator= " " then Separator= "| "
if ListType= " " then ListType= "0 "
select case ListType
case "0 "
response.write "第 "¤tpage& "/ "&n& "页 "
response.write "共 "&totalrec& "条信息 "
if currentpage <= 1 then
response.write "第一页 "&Separator& " "
response.write "前一页 "&Separator& " "
else
response.write " <a href= " " "&url& "?page=1& "&querry& " " " class= " " "&ListLink& " " "> 第一页 </a> "&Separator& " "
response.write " <a href= " " "&url& "?page= "¤tpage-1& "& "&querry& " " " class= " " "&ListLink& " " "> 前一页 </a> "&Separator& " "
end if
if currentpage = n then
response.write "下一页 "&Separator& " "
response.write "最后页 "
else
response.write " <a href= " " "&url& "?page= "¤tpage+1& "& "&querry& " " " class= " " "&ListLink& " " "> 下一页 </a> "&Separator& " "
response.write " <a href= " " "&url& "?page= "&n& "& "&querry& " " " class= " " "&ListLink& " " "> 最后页 </a> "
end if
case "1 "
if currentpage < n then
response.write " <a href= " " "&url& "?page= "¤tpage+1& "& "&querry& " " " class= " " "&ListLink& " " "> 下一页 </a> "
else
response.write "下一页 "
end if
for i=1 to n
if cstr(i)=cstr(currentpage) then
response.write " <b> "&i& " </b> "& " "&Separator& " "
else
response.write " <a href= " " "&url& "?page= "&i& "& "&querry& " " " class= " " "&ListLink& " " "> "&i& " </a> "&Separator& " "
end if
next
case "2 "
PageMerCout=10 '每次可翻的最大页数
'取得记录的最大页码段
if n mod PageMerCout=0 then
MaxPageFiled=n\PageMerCout
else
MaxPageFiled=n\PageMerCout+1
end if
'判断当前页所在的页码段
if currentpage mod PageMerCout =0 then
CurrPageFiled=currentpage\PageMerCout
else
CurrPageFiled=currentpage\PageMerCout+1
end if
'取得当前页码段的最大页码和最小页码
MaxPageNo=CurrPageFiled*PageMerCout
MinPageNo=(CurrPageFiled-1)*PageMerCout+1
if MinPageNo <0 then MinPageNo=0
'输出 “第一页 | 前十页 |”
if currentpage <=1 then
response.write "第一页 "&Separator& " "
else
response.write " <a href= " " "&url& "?page=1& "&querry& " " " class= " " "&ListLink& " " "> 第一页 </a> "&Separator& " "
end if
if CurrPageFiled <=1 then
response.write "前十页 "&Separator& " "
else
response.write " <a href= " " "&url& "?page= "&MinPageNo-PageMerCout& "& "&querry& " " " class= " " "&ListLink& " " "> 前十页 </a> "&Separator& " "
end if
'输出当前页码段
for i=MinPageNo to MaxPageNo
if i <=n then
if cstr(i)=cstr(currentpage) then
response.write " <b> "&i& " </b> "& " "&Separator& " "
else
response.write " <a href= " " "&url& "?page= "&i& "& "&querry& " " "> "&i& " </a> "&Separator& " "
end if
end if
next
'输出 “后十页 | 最后页”
if CurrPageFiled> =MaxPageFiled then
response.write "后十页 "&Separator& " "
else
response.write " <a href= " " "&url& "?page= "&MaxPageNo+1& "& "&querry& " " " class= " " "&ListLink& " " "> 后十页 </a> "&Separator& " "
end if
if currentpage> =n then
response.write "最后页 "
else
response.write " <a href= " " "&url& "?page= "&n& "& "&querry& " " " class= " " "&ListLink& " " "> 最后页 </a> "
end if
end select
end sub
end class
%>
[解决办法]
www.blueidea.com/tech/program/2003/718.asp
[解决办法]
试试这个
<%
set rs = Server.CreateObject( "ADODB.Recordset ")
sql = "Select * from news "
rs.Open sql, conn, 3
rs.PageSize = 10
if (Request( "page ").Count > 0) then
iPage = Request( "page ") / 1
if (iPage < 1) then
iPage = 1
elseif (iPage > rs.PageCount) then
iPage = rs.PageCount
end if
else
iPage = 1
end if
rs.AbsolutePage = iPage
%>
<%Response.Write( "当前第 " & iPage & "页,共 " & rs.PageCount & "页 ")
%>
<%
if (iPage <> 1) then
Response.Write( " <a href= news.asp?page=1 > [第一页] </a> " )
Response.Write( " <a href= news.asp?page= " & iPage-1 & "> [上一页] </a> ")
end if
if (iPage <> rs.PageCount) then
Response.Write( " <a href= news.asp?page= " & iPage+1 & "> [下一页] </a> ")
Response.Write( " <a href= news.asp?page= " & rs.pageCount & "> [最后页] </a> ")
end if
%>