速卖通贴吧:请问ASP分页程序怎么做啊?

来源:百度文库 编辑:高校问答 时间:2024/04/29 21:38:46
可不可以写的完整一点,我很菜的

//先把数据表中的记录读到结果集rs中,这个就不赘述了,以下是分页部分。
rs.pagesize=10 //每页显示10条记录
page=cint(request("page")) //接收页码

//以下处理无效页码
if page<1 then //在asp中,空值比1小
page=1
end if
if page>rs.pagecount then
page=rs.pagecount
end if

rs.absolutepage=page //指定当前页码,这是最关键的
for i=1 to rs.pagesize //开始循环显示每页记录
...
...
rs.movenext
if rs.eof then exit for
next

//以下实现分页控制
if page=1 then
首页 上一页
else
<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
下一页 末页
else
<a href="<%=Request.ServerVariables ("script_name")%>?page=<%=page+1%>">下一页</a> <a href="<%=Request.ServerVariables ("script_name")%>?page=<%=rs.pagecount%>">末页</a>
end if

我知道的有两种办法,一种是利用sql语句实现
select Top "+ipage+" newsid,NewsSubject,url,urldepict,CreateDate from 你的表名 and newsid not in (select top "+(cpage-1)*ipage+" 显示字段 from 你的表名 and istop<>'1' order by CreateDate desc) and istop<>'1' order by CreateDate desc

这里 ipage是每页显示数目,cpage是当前页

还有一种就是利用reocrdSet的自身的方法
pages = 20 '定义每页显示的记录数
listEvent.pageSize = pages '定义每页显示的记录数
allPages = listEvent.pageCount'计算一共能分多少页
根据request("page")
listEvent.AbsolutePage = page
负值给RecordSet对象

前面是打开数据库略
if not rs.Bof and not rs.Eof then
'以下为分面显示
dim pagesize,pageno,pagetotal
pagesize=2 '每页显示2条记录
if request.QueryString("pageno")="" then
pageno=1
else
pageno=Cint(request.QueryString("pageno"))'取整
end if

rs.PageSize=pagesize '设置每页多少条记录
pagetotal=rs.PAGEcount '返回总页数
rs.AbsolutePage=pageno '设置当前页显示第几页
'下面是显示当前页的所有记录
dim i
i=pagesize '控制显示当前页记录
do while ot rs.eof and i>0 '循环到当前页结束或文件结尾
i=i-1
response.write rs("name")&"<br>"'输入姓名字段值
rs.MoveNext
loop
response.write "请选择数据页:"
'输出有关页数信息,从1到总页数循环,如不是当前页,就加上超链接
for i=1 to pagetotal
if i=pageno then
response.write i & " "
else
response.write "<a href=abc.asp?pageno="& i & ">"&i&"</a>"
end if
next
end if
'关闭对象省略