木子屋 Dnawo's BLOG

ASP分页中一个多余的变量

👤 dnawo 📅 2006-09-14 👁 4978 👍 0 💬 0 🔄 本站原创
ASP分页中一个多余的变量

为了能很好的表述出下边我要说的,我们举一个实际的例子,假如存在一个数据库db1,里边一张表table,table里只有两个字段id和name,id为类型为自动编号且为主键,name为文本类型,如下图:
图片
我们在数据库中输入六条记录分别为:小明、小红、小李、小黄、小张、小邝,接下来我们进行简单的分页,程序如下:
<%
Dim conn,sqlstr,page_size,page_no,page_total,i
Set conn=server.createobject("ADODB.connection")
Conn.connectionstring="provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("db1.mdb")
Set rs=server.CreateObject("ADODB.RecordSet")
Sqlstr="select * from table"
Rs.open sqlstr,conn,1,1
If not rs.bof and not rs.eof then
page_size=2 ‘为了便于下边说明,我们让每页显示2条记录
if request.querystring("page_no")="" then
page_no=1
else
page_no=cint(request.QueryString("page_no"))
end if
rs.pagesize=page_size
page_total=rs.pagecount
rs.absolutepage=page_no
i=page_size
do while not rs.eof and i>0
i=i-1
response.write rs(“name”)
rs.movenext
loop
Else
Response.write “数据库中尚无记录”
End if
这样当page_no=1时,显示:
小明
小红
当page_no=2时,显示:
小李
小黄
当page_no=3时,显示:
小张
小邝
请注意上边下划线处即变量I,为什么需要这个I?既然RecordSet对象已经有pagesize和absolutepage两个属性来设置每页显示的记录数和当前所在的页面,那为什么还需要这个I呢?下边我们来做个实验,去掉这个I程序如下:
<%
Dim conn,sqlstr,page_size,page_no,page_total
Set conn=server.createobject("ADODB.connection")
Conn.connectionstring="provider=microsoft.jet.oledb.4.0; data source=" & server.mappath("db1.mdb")
Set rs=server.CreateObject("ADODB.RecordSet")
Sqlstr="select * from table"
Rs.open sqlstr,conn,1,1
If not rs.bof and not rs.eof then
page_size=2 ‘为了便于下边说明,我们让每页显示2条记录
if request.querystring("page_no")="" then
page_no=1
else
page_no=cint(request.QueryString("page_no"))
end if
rs.pagesize=page_size
page_total=rs.pagecount
rs.absolutepage=page_no
do while not rs.eof
response.write rs(“name”)
rs.movenext
loop
Else
Response.write “数据库中尚无记录”
End if
这样当page_no=1时,显示:
小明
小红
小李
小黄
小张
小邝
当page_no=2时,显示:
小李
小黄
小张
小邝
当page_no=3时,显示:
小张
小邝
这样就很容易看出变量I的作用了。
因此,pagesize属性虽然可以用于设置每个页面显示记录的条数,但实际上,它对页面输出记录的条数是并没有什么作用,它的作用是便于服务器算出pagecount的值及当给absolutepage设置值为n时,则第n页显示的第一条记录应为多少,而要对页面输出的记录条数进行控制还得依靠在循环体中设置一数值型变量I进行计数而达到控制的目的,因而该变量的初始值应等于pagesize的值。

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 Insert和Rs.Addnew的比较 下一篇 → 自适应图片大小的弹出窗口