也谈分页

作者:西风 来源:未知 添加时间:2006-5-21 10:32:01
我的写法跟楼上的网友相近,都是利用RS.PageSize和RS.AbsolutePage这二个RS对象来作,但程序代码,有点差异.. 
在ASP的开头如下:(作这样一个判断式是为了当Page=Empty时,指定其值为1) 

If Request("Page")=Empty Then 
Page=1 
Else 
Page=cint(Request("Page")) 
End If 

底下指定每页显示的资料录笔数,并移转到该笔资料录,即当page=4时,会移转到(4-1)*20+1=61,第61笔资料录...(注:要先设rs.PageSize的值,才能得到rs.PageCount值,而且如果你的rs要先关闭,必须先把其值指定下来) 

RS.PageSize = 20 
If Not rs.eof Then 
RS.AbsolutePage = PAGE 
End if 
pagecount=rs.pagecount 

当我们设定了一页的笔数后,在输出时当然要把这个值带到输出的判断式(要加上I > RS.PageSize 时就停止循环) 

I=1 
Do until rs.EOF or I > RS.PageSize 
………… 
………… 
rs.MoveNext 
I=I+1 
Loop 

底下是为了显示成如底下:(注:page>1时,才有上一页,page<pagecount时,才会有下一页,总页数/目前页数,显示各页除了本页之外..) 

上一页 页5/1 2 3 4 5 下一页 第一页 最后一页 

If page>1 Then 
Response.write "<a href=list.asp?page="&page-1&">上一页</a>" 
End If 
Response.write "页 <font face=Arial><b>"&pagecount&" / " 
Response.write page &"</b></font>" 
For j=1 to pagecount 
IF J <> page THEN 
response.write "<a href=list.asp?page="&j&">"&j&"</a>" 
End If 
Next 
If page<pagecount Then 
Response.write "<a href=list.asp?page="&page+1&">下一页</a>" 
End If 
Response.write " <a href=list.asp?page=1>第一页</a>" 
Response.write " <a href=list.asp?page="&pagecount&">最后页</a>" 


注:我以为第一页跟最后页,在阿拉伯数已经有了,似乎也可以不要,以上的语法是固定的,你只要给Rs.PageSize的值就行了,当然它的值也可以由浏览者由Form窗体中来决定!!不太了解这里的板性,故以<>取代半角码
站内搜索