最近在做一个aps分页程序,留空的地方,到后面才慢慢补上.
分页程式
(1)解决方法(提供解决该问题的思路):
1.获取相关参数
if CursorBegin="" then
CursorBegin=0
else
CursorBegin=request("CursorBegin") 分页里第一条记录ID
end if
if CursorEnd="" then
CursorEnd=10000
else
CursorEnd=request("CursorEnd") 分页里最后一条记录
end if
if CurpageNum="" then
CurpageNum=1
else
CurPageNum=request("CurpageNum") 当前的页面
end if
if hav="" then
hav=next(1)
else
hav=request("hav") hav(back,next) 指针
end if
DefRecordNum 当前页面要显示的记录
2.统计总记录与总页数
sql="select * count(ID) from Topic4 "
'获取总记录
TotalRecords=rs("ID")
'获取总页面
TotalPages=TotalRecords/abs(int(TotalRecords/DefRecordNum*(-1)))
3.根据指针的方向,取不同的SQLstr来得记录,并显示分页的记录集
1)back(0)
if not rs.eof then
TempStr=rs.getrows(DefRecordNum)
for i= 0 to ubound(TempStr,2)
adID(i)=TempStr(0,ubound(TempStr,2) -i)
adBoardID(i)=TempStr(1,ubound(TempStr,2) -i)
AdTitle(i)=TempStr(2,ubound(TempStr,2) -i)
next
end if
'记录开始游标与结束游标
CursorBegin =adID(0)
CursorEnd =adID(ubound(TempStr,2))
2)next(1)
SQLstr="Select Top "&DefRecordNum&" ID,BoardID,Title from Topic4 Where ID>"&CursorEnd& " & Order by ID DESE"
set rs=openrecordset(SQLstr)
if not rs.eof then
TempStr=rs.getrows(DefRecordNum)
for i=0 to ubound(TempStr,2)
adID(i)=TempStr(0,i)
adBoardID(i)=TempStr(1,i)
AdTitle(i)=TempStr(2,i)
next
end if
'记录开始游标与结束游标
CursorBegin =adID(0)
CursorEnd =adID(ubound(TempStr,2))
4.根据记录集的情况选择翻页,并给予相关参数的值
'判断是否有页数或页数否为0
1)if TotalPages<>1 and TotalPages<>0 then
'当前页是否大于1
if CurPageNum>1 then
'当前页是否小于总页数
if CurPageNum<TotalPages then
"首页,上一页,下一页,尾页"都能超链接
else
"首页,上一页"有超链接
end if
else
"下一页,尾页"都有超链接
end if
else
"首页,上一页,下一页,尾页"都没有链接
end if
2)首页的超链接参数值为CurPageNum=<% = 1%>
尾页的超链接参数值为CurPageNum=<%= TotalPages%>&CurBegin=0&hav=0
上一页的超链接参数值为CurPageNum=<% = CurPageNum -1 %>&CursorBegin=<%=CursorBegin%>&CursorEnd=<%=CursorEnd%>&hav=0"
下一的超链接参数值为CurPageNum=<% = CurPageNum + 1%>&CursorBegin=<%=CursorBegin%>&CursorEnd=<%=CursorEnd%> & hav=1"
(2)解决方案(提供解决类似该问题的设计模式)
(3)从特殊到一般的过程