ASP分页显示的问题
下面的代码产生的分页显示不正常,显示出来的是第一页就全部把数据库里的资料调出来了,而第二页则又逐步减少,减少的数量正好是PAGESIZE所定的数量,而我现在希望的是它显示...
下面的代码产生的分页显示不正常,显示出来的是第一页就全部把数据库里的资料调出来了,而第二页则又逐步减少,减少的数量正好是PAGESIZE所定的数量,
而我现在希望的是它显示的每一页都是平均的5条,也就是PAGESIZE所定的数目.
<!--#include file="conn.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<%
Set rs=Server.CreateObject("ADODB.Recordset")
Sql="Select * from 考生"
rs.open Sql,conn,1,3
rs.pagesize=5
'实现分页
if rs.Eof then
rs_total = 0
else
rs_total = rs.RecordCount
end if
dim pageno
getpageno = (Request("pageno"))
if(getpageno = "")then
pageno = 1
else
pageno = getpageno
End if
if(not rs.Eof)then
rs.AbsolutePage = pageno
%>
</head>
<body>
<div align="center">
<table width="20%" border="1">
<tr>
<td><div align="center">考号</div></td>
<td><div align="center">姓名</div></td>
<td><div align="center">总分</div></td>
<td><div align="center">性别</div></td>
</tr>
<%
DO WHILE NOT RS.BOF AND NOT RS.EOF
response.write ("<TR>")
response.write ("<TD><a href='42.asp?id=" & rs("考号") & "'>" & rs("考号") & "</a></TD>")
response.write ("<TD><a href='41.asp?id=" & rs("考号") & "'>" & rs("姓名") & "</a></TD>")
response.Write ("<TD><a href='41.asp?id=" & rs("考号") & "'>" & rs("总分") & "</a></TD>")
response.Write("<td>" & rs("性别") & "</td>")
response.write ("</TR>")
rs.movenext
LOOP
%>
</table>
</div>
</table>
<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="321" height="27" class="style4">[<%=pageno%>/<%=rs.PageCount%>] 每页<%=rs.PageSize%>条 共<%=rs_total%>条记录 </td>
<td width="476">
<div align="right" class="style4">
<%
if(pageno <> 1)then
%>
<a href="?">第一页</a>
<%
End if
if(pageno <> 1)then
%>
<a href="?pageno=<%=(pageno-1)%>">上一页</a>
<%
end if
if(instr(pageno,cstr(rs.pagecount)) = 0)then
%>
<a href="?pageno=<%=(pageno+1)%>">下一页</a>
<%
end if
if(instr(pageno,cstr(rs.pagecount)) = 0)then
%>
<a href="?pageno=<%=rs.pagecount%>">最后一页</a>
<%
end if
rs.close
Set rs = Nothing
end if
%>
</div></td>
</tr>
</table>
</body>
</html> 展开
而我现在希望的是它显示的每一页都是平均的5条,也就是PAGESIZE所定的数目.
<!--#include file="conn.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<%
Set rs=Server.CreateObject("ADODB.Recordset")
Sql="Select * from 考生"
rs.open Sql,conn,1,3
rs.pagesize=5
'实现分页
if rs.Eof then
rs_total = 0
else
rs_total = rs.RecordCount
end if
dim pageno
getpageno = (Request("pageno"))
if(getpageno = "")then
pageno = 1
else
pageno = getpageno
End if
if(not rs.Eof)then
rs.AbsolutePage = pageno
%>
</head>
<body>
<div align="center">
<table width="20%" border="1">
<tr>
<td><div align="center">考号</div></td>
<td><div align="center">姓名</div></td>
<td><div align="center">总分</div></td>
<td><div align="center">性别</div></td>
</tr>
<%
DO WHILE NOT RS.BOF AND NOT RS.EOF
response.write ("<TR>")
response.write ("<TD><a href='42.asp?id=" & rs("考号") & "'>" & rs("考号") & "</a></TD>")
response.write ("<TD><a href='41.asp?id=" & rs("考号") & "'>" & rs("姓名") & "</a></TD>")
response.Write ("<TD><a href='41.asp?id=" & rs("考号") & "'>" & rs("总分") & "</a></TD>")
response.Write("<td>" & rs("性别") & "</td>")
response.write ("</TR>")
rs.movenext
LOOP
%>
</table>
</div>
</table>
<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="321" height="27" class="style4">[<%=pageno%>/<%=rs.PageCount%>] 每页<%=rs.PageSize%>条 共<%=rs_total%>条记录 </td>
<td width="476">
<div align="right" class="style4">
<%
if(pageno <> 1)then
%>
<a href="?">第一页</a>
<%
End if
if(pageno <> 1)then
%>
<a href="?pageno=<%=(pageno-1)%>">上一页</a>
<%
end if
if(instr(pageno,cstr(rs.pagecount)) = 0)then
%>
<a href="?pageno=<%=(pageno+1)%>">下一页</a>
<%
end if
if(instr(pageno,cstr(rs.pagecount)) = 0)then
%>
<a href="?pageno=<%=rs.pagecount%>">最后一页</a>
<%
end if
rs.close
Set rs = Nothing
end if
%>
</div></td>
</tr>
</table>
</body>
</html> 展开
1个回答
展开全部
这只是个asp小技巧类的东西,它虽然适合在每个不同文件名里调用这个函数,但是也是有前提的,下面让我们来仔细看看其中的原委。
下面这段是基本的分页代码:
<% sql = "select……………………省略了sql语句
Set rs=Server.Createobject("ADODB.RECORDSET")
rs.Open sql, conn, 1, 1
if not rs.eof then
pages = 30 ’定义每页显示的记录数
rs.pageSize = pages ’定义每页显示的记录数
allPages = rs.pageCount’计算一共能分多少页
page = Request.QueryString("page")’通过浏览器传递的页数
’if语句属于基本的排错处理
if isEmpty(page) or Cint(page) < 1 then
page = 1
elseif Cint(page) > allPages then
page = allPages
end if
rs.AbsolutePage = page
Do while not rs.eof and pages > 0 %>
这里输出你要的内容………………
<% pages = pages - 1
rs.MoveNext
Loop
else
Response.Write("数据库暂无内容!")
End if
rs.Close
Set rs = Nothing %>
系统已经为数据分页了,下面就看看这次探讨的关键问题分页函数的定义
<% SUB pageUrl(pUrl)
Dim eUrl
txts = Request.ServerVariables("URL")
txts = left(txts,instrrev(txts,"/",len(txts))-1)
eUrl = "http://"; & Request.ServerVariables("server_name") & txts
For i =1 to allpages
txt = ""
txt = "<strong>"
txt = txt & "<a href=" & eUrl & pUrl & "page="&i & ">"
if i = Cint(Page) then txt = txt & "<font color=’bb0000’>"
txt = txt & (i)
if i = Cint(Page) then txt = txt & "</font>"
txt = txt & "</a> ‖ </strong>"
Response.Write(txt)
Next
END sub %>
把上面这个分页函数代码COPY存成一个ASP文件,在需要使用的页面里用include来引入他调用的时候只要 Call("/你调用的文件名?")就ok了,比如我的 news页面里要调用那么就是<%Call("/news.asp?")%>
下面这段是基本的分页代码:
<% sql = "select……………………省略了sql语句
Set rs=Server.Createobject("ADODB.RECORDSET")
rs.Open sql, conn, 1, 1
if not rs.eof then
pages = 30 ’定义每页显示的记录数
rs.pageSize = pages ’定义每页显示的记录数
allPages = rs.pageCount’计算一共能分多少页
page = Request.QueryString("page")’通过浏览器传递的页数
’if语句属于基本的排错处理
if isEmpty(page) or Cint(page) < 1 then
page = 1
elseif Cint(page) > allPages then
page = allPages
end if
rs.AbsolutePage = page
Do while not rs.eof and pages > 0 %>
这里输出你要的内容………………
<% pages = pages - 1
rs.MoveNext
Loop
else
Response.Write("数据库暂无内容!")
End if
rs.Close
Set rs = Nothing %>
系统已经为数据分页了,下面就看看这次探讨的关键问题分页函数的定义
<% SUB pageUrl(pUrl)
Dim eUrl
txts = Request.ServerVariables("URL")
txts = left(txts,instrrev(txts,"/",len(txts))-1)
eUrl = "http://"; & Request.ServerVariables("server_name") & txts
For i =1 to allpages
txt = ""
txt = "<strong>"
txt = txt & "<a href=" & eUrl & pUrl & "page="&i & ">"
if i = Cint(Page) then txt = txt & "<font color=’bb0000’>"
txt = txt & (i)
if i = Cint(Page) then txt = txt & "</font>"
txt = txt & "</a> ‖ </strong>"
Response.Write(txt)
Next
END sub %>
把上面这个分页函数代码COPY存成一个ASP文件,在需要使用的页面里用include来引入他调用的时候只要 Call("/你调用的文件名?")就ok了,比如我的 news页面里要调用那么就是<%Call("/news.asp?")%>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询