请各位朋友谈谈自己有关翻页的思路,请尽量少用代码。谢谢!

yqyzzy 2003-10-16 08:36:40
记录的总数为32条,pagesize=10,用 sql="select * from book order by id desc"查询语句,我想达到每页显示10条记录,先显示最新10条记录,然后下拉菜单显示所有的页数,比如1
2
3
4
等,并且如果我随便要点击那一个页,就跳转到那个页!请各位朋友谈谈自己有关翻页的思路,请尽量少用代码。谢谢!
...全文
37 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
大致代码~~!(每页十个记录)
<%
dim t_page,n
if request("page")="" then '-----------------如果是第一次访问该页,分页信息为1
t_page=1
else
t_page=request("page") '---------------------获取分页信息
end if
SQL="Select * from content ....."
Set rs=con.Execute(SQL, RecsAffected, adCmdText)
n=1
do while not rs.eof '-------------------------先全部查询
if n>t_page*10+1 and n<t_page*10 then '---根据分页信息判断本页记录是多少
response.write rs("字段") '----------------显示记录
end if
rs.movenext
n=n+1
loop
response.write <a href="本页地址?page="&n&">下一页</a>"
%>
  • 打赏
  • 举报
回复
我是这样做的,先全部查询,然后用if语句判断,第一页就是n>1 and n<20显示,第二页就是n>21 and n<40显示......n根据分页信息赋值(本页提交分页信息)。大体思路就是这样,不过我觉得这样效率不高,拿出来跟大家讨论讨论
wauo 2003-10-16
  • 打赏
  • 举报
回复
改一下
<%set rs=server.CreateObject("ADODB.RECORDSET")
sql="select * from book order by id desc"
rs.open sql,conn,3,1
if not rs.eof then
if isnull(request("page")) then
page=""
else
page=cint(request("page"))
end if
rs.pagesize=10
if page="" or page<1 then
page=1
end if
if page>rs.pagecount then
page=rs.pagecount
end if
if rs.pagecount>0 then
rs.absolutepage=page
end if
%>
<%for i=0 to rs.pagesize-1
'''''这里读出数据库内容
rs.movenext
if rs.eof then
exit for
end if
next
%>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align=right>
<select name="changesel"
<%for k=1 to rs.pagecount%>
<option value="<%=k%>"><%=k%></option>
<%next%>
</select>
</td>
<td width="10%"></td>
</tr>
</table>
以上没有调试
wauo 2003-10-16
  • 打赏
  • 举报
回复
<%set rs=server.CreateObject("ADODB.RECORDSET")
sql="select * from book order by id desc"
rs.open sql,conn,3,1
if not rs.eof then
if isnull(request("page")) then
page=""
else
page=cint(request("page"))
end if
rs.pagesize=10
if page="" or page<1 then
page=1
end if
if page>rs.pagecount then
page=rs.pagecount
end if
if rs.pagecount>0 then
rs.absolutepage=page
end if
%>
<%for i=0 to rs.pagesize-1

rs.movenext
if rs.eof then
exit for
end if
next
%>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align=right>
<%if page<>1 then%>
<a href="<%=Request.ServerVariables ("SCRIPT_NAME")%>?page=1">
首页</a> 
<a href="<%=Request.ServerVariables ("SCRIPT_NAME")%>?page=<%=page-1%>">
上一页</a> 
<%end if%>
<% if page<>rs.pagecount then%>
<a href="<%=Request.ServerVariables ("SCRIPT_NAME")%>?page=<%=page+1%>">下一页</a> 
<a href="<%=Request.ServerVariables ("SCRIPT_NAME")%>?page=<%=rs.pagecount%>">尾页</a>
<%end if%>
<font color=red><%=page%>/<%=rs.pagecount%>页,共有<font color=red> </font><%=rs.recordcount%>条
</td>
<td width="10%"></td>
</tr>
</table>
pp4u 2003-10-16
  • 打赏
  • 举报
回复
源代码如下:
if Pagenum = "" Then Pagenum = 1 //从第一页开始显示
//建立数据库连接和Recordset对象实例rs。
与第一种方法相同,此处略过。 RS.Pagesize = 10 ' 设置一页中显示的记录条数为10条
// 确定翻页的动作
Select Case Request("NAV")
Case ""
session("Pagenum") = 1
case "First" ' First Record
session("Pagenum") = 1
case "Prev" ' Previous Record
if session("Pagenum") > 1 then
session("Pagenum") = session("Pagenum") - 1
End If
case "Next" ' Next Record
if session("Pagenum")< RS.PageCount then
session("Pagenum") = session("Pagenum") + 1
End if
case "Last" ' Last Record
session("Pagenum") = RS.PageCount
End Select
RS.Absolutepage = Clng(session("Pagenum")) //确定当前页的第一条记
录号
lihua9666 2003-10-16
  • 打赏
  • 举报
回复
我自己写了一个函数,需要的话给我你的邮箱
yqyzzy 2003-10-16
  • 打赏
  • 举报
回复
我用的是vbscript+access

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧