求asp分页代码

刚开始学,希望越详细越好,那些网上的看不懂... 刚开始学,希望越详细越好,那些网上的看不懂 展开
 我来答
百度网友f9df4cfd3
2009-03-09 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:110万
展开全部
我自己也是看下面这个分页效果学会的,总的来说分页主要分成设置rs.pagesize和rs.absolutepage还有输出结果等几个步骤。
你自己仔细看看分页效果的目的是把信息分屏显示等等!!

近段时间看了一些论坛上面关于分页的ASP程序依然有许多的关注者,但里面只有代码,没有详细的解释,对于初学者来说,这样总是得不到真正的掌握,此次我将针对分页技术进行详解,让大家来理解ASP分页,好了,一起来对分页程序来次透彻的了解吧!

首先,来看看效果!

看看功能:分页程序首先读取每页预置的记录条数,在此是5条,其它将在下页中显示,同时提示当前页数、总页数、总记录数,当显示的页数为第一页时,“首页”、“上一页”链接失效,当显示的页数为最后页时,“下一页”、“尾页”链接失效。

接下来,以实例的方式告诉大家怎么一步步的做出这种分页效果。

首先,数据库中字段record_info存在于info表中(实例下载中有数据库),先链接数据库并将一个记录集打开,以下代码:

以下为引用的内容:

<%
Set conn=Server.CreateObject("Adodb.Connection")
connstr="provider=Microsoft.JET.OLEDB.4.0;Data Source="&Server.MapPath("data.mdb")
conn.open connstr
Set rs=Server.CreateObject("Adodb.Recordset")
sql="Select * from info"
rs.open sql,conn,1,1
%>

这段代码不详解,相信初入门的都会,具体的解释可以看看《手把手教你用ASP做留言本》教程,

接下来这是分页中比较重要的部分,了了三行而已:

以下为引用的内容:

<%
rs.pagesize=5
curpage=Request.QueryString("curpage")
rs.absolutepage=curpage
%>

第二句:

rs.pagesize=5,这个什么意思呢?它就是在Recordset对象中的一个内置属性,它的作用是指定每页的记录条数,设置为5时,每5条记录放在一起成一页,比如实例中共有21条记录,那么,使用rs.pagesize分页后,这21条记录将分成5页进行显示。

第三句:

这里主要是用于翻页的功能,将URL的post参数curpage传递给curpage变量,这个curpage将得到浏览者想要到达的页数。(运行一下实例就会明白)

第四句:

rs.absolutepage,这个也是个内置的属性,,它代表的意思就是将curpage变量的数值指定为当前页。

现在开始可以让记录循环显示了:

以下为引用的内容:

<%
for i= 1 to rs.pagesize
if rs.eof then
exit for
end if
%>
<%=rs("record_info")%><br>
<%
rs.movenext
next
%>

第二句:

利用for循环在每页显示rs.pagesize属性中指定的记录数。

第三、四、五句:

这句意思是当最后一页达不到指定记录时就退出循环,以免出错。

第七句:

绑定从数据库取出的record_info字段,就是叫这字段内的记录循环显示的。

第九句:

用rs.movenext方法将rs记录集往下移一条记录。

第十句:

for循环语句。

另外可以用<%=curpage%>读出当前页次,用<%=rs.pagecount%>读出总页数,用<%=rs.recordcount%>读出总记录数。例如:“当前第<%=curpage%>页,共有<%=rs.pagecount%>页,共有:<%=rs.recordcount%>条记录”。

在显示首页、上页、下页、尾页功能上,采用了if...else...语句,比较好懂。

以下为引用的内容:

<%if curpage=1 then%>
首页
<%else%>
<a href="?curpage=1">首页</a>
<%end if%>

<%if curpage=1 then%>
上一页
<%else%>
<a href="?curpage=<%=curpage-1%>">上一页</a>
<%end if%>

<%if rs.pagecount<curpage+1 then%>
下一页
<%else%>
<a href="?curpage=<%=curpage+1%>">下一页</a>
<%end if%>

<%if rs.pagecount<curpage+1 then%>
尾页
<%else%>
<a href="?curpage=<%=rs.pagecount%>">尾页</a>
<%end if%>

理解一下:

首页:

这个使用当前页是否为第一页时判别,如果当前为第一页(也就是首页),那么显示首页两字,没有链接,否则提供直接跳转到首页的链接。

上一页:

当前为第一页时,链接失效,反过来,链接到当前面的上一页,这里使用:<%=curpage-1%>,就是用当前的页数减去1,得到上一页。

下一页:

这里需要使用rs.pagecount这个属性来比较,假如总页数小于当前页数加1的值,那表明这就是第后一页,链接将失效,否则链接到下一页。

尾页:

和下一页的功能一样判定出是最后页时链接失效,否则将当前页指定为rs.pagecount(总页数)。
这个教程到此结束,经过讲解,大家应该对ASP的分页技术有较深的理解了吧?有问题可以通过在blog留言的方式和我联系。
90后回村房屋改造
2009-03-09 · TA获得超过148个赞
知道小有建树答主
回答量:218
采纳率:0%
帮助的人:138万
展开全部
<!-- #i nclude file="../conn.asp" --> //(Yoko:路径按自己的设置好)
<%
dim i,intPage,page,pre,last,filepath
set rs = server.CreateObject("adodb.recordset")
sql="select * from user order by user_ID desc"
rs.PageSize = 20 //(Yoko:这里设定每页显示的记录数
rs.CursorLocation = 3
rs.Open sql,conn,0,2,1 //(Yoko:'这里执行你查询SQL并获得结果记录集
pre = true
last = true
page = trim(Request.QueryString("page"))

if len(page) = 0 then
intpage = 1
pre = false
else
if cint(page) =< 1 then
intpage = 1
pre = false
else
if cint(page) >= rs.PageCount then
intpage = rs.PageCount
last = false
else
intpage = cint(page)
end if
end if
end if
if not rs.eof then
rs.AbsolutePage = intpage
end if
%>
<!--循环开始-->
<%
for i=1 to rs.PageSize
if rs.EOF or rs.BOF then exit for
%>
..................
//(Yoko:要循环显示的内容 )..................
...................
<%
rs.movenext
next
%>
<!--循环体结束
分页部分:-->
<table width="99%" border="1" cellpadding="2" cellspacing="2" borderColorLight=#808080 borderColorDark=#ffffff>
<tr>
<%if rs.pagecount > 0 then%>
<td width="13%" align="left">当前页<%=intpage%>/<%=rs.PageCount%></td>
<%else%>
<td width="41%" align="left">当前页0/0</td><%end if%>
<td width="46%" align="right"> <a href="本页.asp?page=1">首页</a>|
<%if pre then%>
<a href="本页.asp?page=<%=intpage -1%>">上页</a>| <%end if%>
<%if last then%>
<a href="本页.asp?page=<%=intpage +1%>">下页</a> |<%end if%>
<a href="本页.asp?page=<%=rs.PageCount%>">尾页</a>|转到第
<select name="sel_page" onchange="javascript:location=this.options[this.selectedIndex].value;">
<%
for i = 1 to rs.PageCount
if i = intpage then%>
<option value="本页.asp?page=<%=i%>" selected><%=i%></option>
<%else%>
<option value="本页.asp?page=<%=i%>"><%=i%></option>
<%
end if
next
%>
</select>页</font>
</td>
</tr>
</table>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
junyu_nn
2009-03-09
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
楼上的挺麻烦的

来个简单地吧
<%
<-----连接数据库----->
set con=server.CreateObject("adodb.connection")
con.open "driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("路径")
<-----查询语句----->
ssql="select * from 表"
set rs=server.CreateObject("adodb.recordset")
rs.open ssql,con,1
<-----设置分页----->
if not rs.eof then '如果记录有内容,才设置分页并显示
num=5
rs.pagesize=5 '一页显示5条
page=int(request("page")) '获取页数,从分页导航中
if page<1 then '如果页数小于1
page=1
end if
if page>rs.pagecount then '如果页数大于最大分页数
page=rs.pagecount
end if
rs.absolutepage=page '绝对定对到当前页
%>

<-----循环语句----->
<%do while not rs.eof and num>0%>
<--------要显示的内容,可以事表格之类的-------------------->
<%num=num-1
rs.movenext
loop%>
<-----循环结束----->

<-----分页导航---->
<form action="" method="get">
<p align="center">
<a href="?page=1">第一页</a>
<a href="?page=<%=page-1%>">上一页</a>
<a href="?page=<%=page+1%>">下一页</a>
<a href="?page=<%=rs.pagecount%>">尾页</a>
</p>
</form>

<%else ' 如果记录为空%>
<p align="center">没有记录</p>
<%end if%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式