你可以用我的分页程序试一试:
以下是我的程序中所用的分页程序,可能有些实现方法比较烦点,不过参考价值应该有的:)!
<% ‘判断,如果page等于空的话,就让它等于1
page=request.querystring("page")
if page="" then
page=1
end if
‘设置每页显示的记录数,下面赋予的是30
pages = "30"
‘建立记录集
set rs = server.createobject("adodb.recordset")
sql = "select * from user"
‘打开记录集
rs.open sql,conn,1,3
‘判断是否有记录,免得没有记录时出错
if not(rs.BOF or rs.EOF) then
‘设置每页显示的记录数,其实上面的那个设置显示的记录数可以省略的,只是为了以后查找的方便,才用上了
rs.pagesize = pages
‘取得目前的记录页数
maxpagecount=cint(rs.pagecount)
‘取得记录总数
r=cint(rs.RecordCount)
‘取得当前页数
rs.absolutepage = page
rcount=0
‘下面的判断是在显示页面连接的时候,只显示10页,免得过多的页面显示出来,看起来会比较丑的页面:)还有就是判断页数是否小于0或者超过最大页数,免得出现页数为负和超过最大页数的情况
pagestart=page-5
pageend=page+5
if pagestart<1 then
pagestart=1
end if
if pageend>maxpagecount then
pageend=maxpagecount
end if
‘用do循环来写出数据,同时判断写出的记录数是否已经超过了每页显示的最大记录,如果是的话就停止显示
do while not rs.eof and rcount <rs.pagesize%>
<%
‘将记录移动到下一条,同时将rcount加1,这样好与记录数相对应
rs.MoveNext
rcount=rcount+1
loop
end if
‘释放对象
set rs=nothing
%>
<a href=viewuser.asp?page=1><<</a>
<% ‘用for循环来写出页数连接
for i=pagestart to pageend
if i=0 then
i=1
end if
strurl="<a href=viewuser.asp?page="&i&">["&i&"]</a>"
response.write strurl
response.write " "
next
%><a href=viewuser.asp?page=<%=maxpagecount%>>>></a> ..页次:<%=page%>/<%=maxpagecount%>页 每页:<%=pages%> 记录数:<%=r%>