我在使用recordset的absolutepage属性进行分页设置时,发现实际现实的内容并非正确的内容,举个例子,第一页显示内容如下:(显示的均为ID编号,每条记录有唯一的ID编号)
20020203090946049760
20020307222605110310
20020311203833195991
20020311205840033781
20020311210152013879
20020316125105394855
20020319141305059360
20020320175854040848
20020320190343035200
20020328020515052887
20020328020830170709
20020329132327948518
20020401130713464807
20020401130918065545
20020401132142002545
20020401193657329277
20020403130058035414
20020406171945417225
20020406191951064215
20020407194918365206
第二页显示如下:
20020328020830170709
20020329132327948518
20020401130713464807
20020401130918065545
20020401132142002545
20020401193657329277
20020403130058035414
20020406171945417225
20020406191951064215
20020407194918365206
20020408174859159695
20020408182257503035
20020408193336245458
20020409133122086800
20020409134350006609
20020409134607222804
20020409193643070416
20020409194706311729
20020410122155013291
20020410122912547712
在第一页显示过的内容在第二页又出现了。但是如果我把pagesize设置为10或者更小,就没有这种问题。是不是pagesize有一个有效的最大值?
以下是我的分页代码:
currentpage=request("page")
If currentpage="" or Not IsNumeric(currentpage) then
currentpage=1
Else
currentpage=clng(currentpage)
If err then
currentpage=1
err.clear
End if
End if
set rs=server.createobject("adodb.recordset")
strsql="select * from BBS_Article where ReplyID='0' order by ID"
rs.open strsql,cn,1
if rs.recordcount>0 then
rs.movefirst
rs.absolutepage=cint(currentpage)
end if
rs.pagesize=20
for i=1 to rs.pagesize
response.write rs(dbf_BBS_Article_ID)&"
1<br/>
"
rs.movenext
next
rs.close
set rs=nothing
---------------------------------------------------------------
rs.pagesize=20放到前面,再加个参数。
rs.open strsql,cn,1,3
rs.pagesize=20
if rs.recordcount>0 then
rs.absolutepage=cint(currentpage)
end if
---------------------------------------------------------------
If request("page") = "" Then currentpage = 1 else currentpage = request("page")
Set Rs=Server.CreateObject("ADODB.Recordset")
msg_per_page = 18
rs.PageSize=18
strSQL = "select * from BBS_Article where ReplyID='0' order by ID"
Rs.Open strSQL, conn, 1, 1
totalpage = rs.PageCount
totalmessage = Rs.recordcount
If totalmessage <> 0 Then
Rs.AbsolutePage = currentpage
arrMsg = Rs.getRows(msg_per_page)
End If
TotalLines = rs.recordcount
If IsEmpty(arrMsg) Then
Response.Write "
1<tr><td align="center" bgcolor="ffffff" colspan="12" height="200">暂时无数据</td></tr>
"
Else
Rtotal = uBound(arrMsg,2)+1
For i=0 to uBound(arrMsg,2)
if count mod 2 = 0 then COLOR="#FFFFFF" else COLOR="#F5F5F5"
response.Write "
1<tr "&color&"""="" align="" bgcolor="" center""="">" & vbcrlf
2response.Write " <td nowrap="">" & arrmsg(0,i) & "</td>" & vbcrlf
3
4count=count+1
5next
6end if</tr>