注册 登录
编程论坛 ASP技术论坛

关于分页纪录集的问题```急````````````````

3201 发布于 2007-10-12 16:49, 458 次点击
请问 用ASP建立数据库的纪录集之后 分页,分页出来的纪录都是按顺序排列的``
例如 我有11条纪录,设定为每页10条``就算我用 movelast到纪录集的最后开始,第一页也只有一条纪录,第二页才是10条纪录.请问应该怎么做才能使分页的时候纪录由最后一条纪录开始算起.也就是说象上面提到的状况,第一页是最新的10条,第二页是最老的一条.``````
8 回复
#2
32012007-10-12 16:54
哪位大哥能回答一下????
#3
yms1232007-10-12 16:56
用SQL语句对数据进行排序ASC是升序,Desc是降序排列语法
select * from [tableName] Order By [Field] [ASC|DESC]
查询语句后面加Order By子句空格字段名空格升序或降序
比如有如下表
test
id name
1 1
2 2
3 3
4 4
select * from [test] Order By [id] Desc
这里就是以ID字段为标准从大到小排列数据,时间字段也可以进行排序。
#4
都市打工者2007-10-12 17:01

<table width="100%" height="97" cellpadding="0" cellspacing="0" bordercolor="0">
<%
set rs=server.createobject("adodb.recordset")
sql="select * from law order by addtime desc"
rs.open sql,conn,1,3
if rs.eof then
response.write"没有数据"
response.End()
end if
rs.PageSize =15
page = CLng(Request.QueryString("page"))
If page < 1 Then
page = 1
End If
If page > rs.PageCount Then
page = rs.PageCount
End If
rs.AbsolutePage = page
For i = 1 To rs.PageSize
varNo = (page - 1) * rs.PageSize + i
%>
<tr>
<td width="14%">
<table width="100%" cellSpacing=0 cellPadding=0 bordercolor="#ffcc66" border=1 bordercolordark="#FFFFFF">
<tr>
<td width="603" class="style20">问:<a href="law.asp?id=<%=rs("id")%>" target="_blank"><%=left(rs("title"),50)%></a></td>
</tr>
<tr>
<td width="603"><span class="style20">答:<a href="law.asp?id=<%=rs("id")%>" target="_blank"><%=rs("reply")%></a></span></td>
</tr>
</table>
<span class="style10"><br>
</span></td>
</tr>
<%
rs.MoveNext
varNo=varNo+1
If rs.EOF Then Exit For
next
%>
<tr>
<td height="47" colspan="2">
<div align="center"><span class="style20">【共<%= rs.recordcount %>条<%= rs.pagecount %>页 当前<%= page %>/<%= rs.pagecount %>】
<%
If page = 1 Then
Response.Write("第一页 ")
Else
Response.Write("<a href=fulllaw.asp?page=1>第一页</a>")
End If

If page = 1 Then
Response.Write(" 上一页 ")
Else
Response.Write("<a href=fulllaw.asp?page=" & page-1 & ">上一页</a> ")
End If

If page = rs.PageCount Then
Response.Write("下一页 ")
Else
Response.Write("<a href=fulllaw.asp?page=" & page+1 & ">下一页</a>")
End If

If page = rs.PageCount Then
Response.Write("最后一页 ")
Else
Response.Write("<a href=fulllaw.asp?page=" & rs.PageCount &"> 最后一页</a>")
End If
%>
</span></div></td>
</tr>
</table>
我就是用这个的,很好用的

#5
32012007-10-12 17:04
不行啊 就算我用ID字段降序排列``用了分页之后第一野还是只有最后最新的一条数据 而不是最后的10条``
求救啊````````
#6
32012007-10-12 17:08
谢谢 都市打工者 和 yms123```
原来 按降序排之后 要用 movenext 的
#7
都市打工者2007-10-12 17:18

哈哈。互相学习

#8
cainiao1582007-10-13 22:46
For i = 1 To rs.PageSize
varNo = (page - 1) * rs.PageSize + i
..............................
.............................
rs.MoveNext
varNo=varNo+1
这个算法我不明白,谁能解释下,我是菜鸟!!!
#9
yms1232007-10-13 22:54
varNo = (page - 1) * rs.PageSize + i
这个算法是求当前分页中的其中一条记录的记录编号,我写的那个分页程序里好像用到过。
1