asp分页显示 补充代码

2025-02-25 17:05:57
推荐回答(4个)
回答1:



显示留言






留言板查看









发表留言





<%
set rs=server.CreateObject("adodb.recordset")
rs.open"select *from message order by message_time desc",aa,1,1
if rs.recordcount=0 then
%>

还没有人进行留言!

<%
else
rs.PageSize =10 '每页记录条数
iCount=rs.RecordCount '记录总数
iPageSize=rs.PageSize
maxpage=rs.PageCount
page=request("page")

if Not IsNumeric(page) or page="" then
page=1
else
page=cint(page)
end if

if page<1 then
page=1
elseif page>maxpage then
page=maxpage
end if

rs.AbsolutePage=Page

if page=maxpage then
x=iCount-(maxpage-1)*iPageSize
else
x=iPageSize
end if
%>













留言人:<%=rs("message_name")%> 留言主题:<%=rs("message_theme")%> 留言时间:<%=rs("message_time")%>
<%
call PageControl(iCount,maxpage,page,"border=0 align=center","

")
end if
rs.close
set rs=nothing
Sub PageControl(iCount,pagecount,page,table_style,font_style)
'生成上一页下一页链接
Dim query, a, x, temp
action = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("SCRIPT_NAME")

query = Split(Request.ServerVariables("QUERY_STRING"), "&")
For Each x In query
a = Split(x, "=")
If StrComp(a(0), "page", vbTextCompare) <> 0 Then
temp = temp & a(0) & "=" & a(1) & "&"
End If
Next

Response.Write("" & vbCrLf )
Response.Write("" & vbCrLf )
Response.Write("" & vbCrLf )
Response.Write("" & vbCrLf )
Response.Write("
" & vbCrLf )
Response.Write(font_style & vbCrLf )
Response.Write(" 共检索到:" & iCount & "条信息" & vbCrLf)

if page<=1 then
Response.Write ("首页 " & vbCrLf)
Response.Write ("上页 " & vbCrLf)
else
Response.Write("首页 " & vbCrLf)
Response.Write("上页 " & vbCrLf)
end if

if page>=pagecount then
Response.Write ("下页 " & vbCrLf)
Response.Write ("尾页 " & vbCrLf)
else
Response.Write("下页 " & vbCrLf)
Response.Write("尾页 " & vbCrLf)
end if

Response.Write(" 页次:" & page & "/" & pageCount & "页" & vbCrLf)
Response.Write(" 转到" & "" & "页" & vbCrLf & "")
Response.Write("
" & vbCrLf )
End Sub
%>


<%
rs.movenext
loop
rs.close
set rs=nothing
cn.close
set cn=nothing
%>


回答2:

你算问对人了.我用下在的方法介绍给你.非常好好.而且简单.

先把这复制下面的代码(原封不动)

fy_get.asp 文件是下面的代码

<%
' ========在包含此段代码前您必须先包含fy_set.asp文件,并准备好以下变量========
' url -> 你要转向的地址,包括参数,如test.asp?id=1留空则默认指向本页
' ===========================================================================
rs.close
response.write ""
response.write ""
if url="" then
url=Request.ServerVariables("URL")+"?page="
else
url=url+"&page="
end if
response.write "
总共找到"+cstr(recordcount)+"条记录 当前第"+cstr(page)+"/"+cstr(pagecount)+"页"
if page=1 then
response.write "首页 上一页 "
else
response.write "首页 上一页 "
end if
pre=page-5
if pre<1 then
pre=1
nex=10
else
nex=page+5
end if
if nex>pagecount then
nex=pagecount
end if
for i = pre to nex
if i=page then
response.write "["+cstr(i)+"]"
else
response.write "["+cstr(i)+"]"
end if
next
if page=pagecount then
response.write " 下一页 尾页"
else
response.write " 下一页 尾页"
end if
response.write "
"
%>

fy_set.asp 文件是下面的代码
<%
' ========在包含此段代码前您必须准备好以下变量========
' conn -> 数据库连接对象,已经打开
' rs -> 记录集,处于关闭状态
' sql -> SQL语句
' pageSize -> 每页要显示的记录条数,如留空默认为10
' ====================================================
if rs.state=1 then rs.close
rs.open sql, conn, 1, 1
If rs.recordcount=0 Then
Response.Write "

当前没有任何记录!
"
'Response.end
End If
'取得每页显示记录数'
if pagesize="" or (not isnumeric(pagesize)) or pagesize<1 then
pagesize = 15
end if
rs.pagesize = pagesize '定义每页显示的记录数'
recordcount = rs.recordcount '计算总记录数'
pagecount = rs.pagecount '计算一共能分多少页'
'判断当前是第几页'
if request("page")<>"" then
page = cint(request("page"))
if page > pageCount then
page = pageCount
elseif page < 1 then
page = 1
end if
else
page = 1
end if
rs.AbsolutePage = page
n = pagesize
' ====================调用完后请使用如下方法显示数据====================
' 这里写不需要循环显示的数据,如
' while not rs.eof and n>0
' 这里写需要循环显示的数据,如
' n = n - 1
' rs.movenext
' wend
' 这里写不需要循环显示的数据,如
< %=rs(0)% >

' ========显示完数据库的内容之后包含fy_get.asp文件,获取页码列表========
%>

下面是调用.
1.在rs.open sql,conn,1,1%>下面写
(这里注意一定要写在rs.open后面,而且这里调用是不写在<%%>这里的.这个有基础的都应该知道.)

2.在循环处这么写do while not rs.eof and n>0
也就是说除了正常的循环外加个and n>0

3.在rs.movenext
loop之间这样写
rs.movenext
n=n-1
loop
也就是多了一个n=n-1

4.循环完了之后随便找个地方写这个


完成.是不是非常简单.

回答3:

因为你是新手,用你的代码给你来个简单的,以后你慢慢扩展为复杂的分页程序...


显示留言






留言板查看









发表留言





<%
if request.querystring("page")="" then
page=1
else
page=request.querystring("page")
end if
set rs=cn.execute("select * from message order by message_time desc")
%>

<%
rs.PageSize=15 '要求每页显示多少条记录,就改15这个数和下面的I的值就OK了
dim page_total '声明变量总页数
page_total=rs.PageCount'page_total会返回总页数,将在下面输出页码时用到
rs.AbsolutePage=page'设置当前显示第几页,这里用到了传过来的page
Dim I
I=15'I 用来控制显示当前页记录,注意这里和rs.PageSize要一致。
Do While Not rs.Eof And I>0 '循环直到当前页结束或记录集结尾
I=I-1'每显示一条,I减1,当变成0时,表示本页结束
%>









<%
rs.movenext
loop
%>



留言人:<%=rs("message_name")%> 留言主题:<%=rs("message_theme")%> 留言时间:<%=rs("message_time")%>

<%if page>1 and page<=page_total then%>
首页 上一页|下一页 尾页 共<%=rs.recordcount%>条留言<%end if%>


<%

rs.close
set rs=nothing
cn.close
set cn=nothing
%>


回答4:

ASP 分页类 Kin_Db_Pager
http://down.chinaz.com/soft/24767.htm

这个很好呀,省事多了,这是我用过最好用的分页类了。