你的位置:| 首页网站建设ASP数据库分页代码实例→文章正文  
文章导航

ASP数据库分页代码实例

说明:做分页特别注意要用rs.open sql,conn,1,3 不会出现记录数为负数,表示游标为1,可向前向后移动;锁定类型为3,可批量更新多条记录。最好还在rs.pagesize=10后设置rs.movelast '游标移至最后
rs.movefirst '游标移到最前

 

<%
set conn=server.createobject("adodb.connection")
strpro="provider=microsoft.jet.oledb.4.0;data source="& server.mappath("ying.mdb")
conn.open strpro
response.write"计信0822班级名单表!<br>"
set rs=server.createobject("adodb.recordset")
strsql="select * from student"
rs.open strsql,conn,1,3
if not rs.eof then
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="middle">姓名</td>
<td align="center" valign="middle">信息</td>
</tr>
<%
rs.pagesize=8
rs.movelast '游标移至最后conn,1,3不会出出负数
rs.movefirst '游标移到最前
pagecount=rs.pagecount
page=int(request("page"))
if page<=0 then page=1
if page>pagecount then page=pagecount
if request("page")="" then page=1
rs.absolutepage=page
for i=1 to rs.pagesize
%>
<tr>
<td align="center" valign="middle"><%=rs("username")%></td>
<td align="center" valign="middle"><%=rs("info")%></td>
</tr>
<%
rs.movenext
if rs.eof then
exit for
end if
next
%>
<tr>
<td colspan="2" align="center" valign="middle">
<%
if page=1 and not page=pagecount then
%>
第一页 | 上一页 |
<a href="?page=<%=page+1%>"> 下一页</a> |
<a href="?page=<%=pagecount%>"> 最后页</a>
<%
elseif page<>1 and not page=pagecount then
%>
<a href="?page=1"> 第一页</a> |
<a href="?page=<%=page-1%>"> 上一页</a> |
<a href="?page=<%=page+1%>"> 下一页</a> |
<a href="?page=<%=pagecount%>"> 最后页</a>
<%
elseif page=pagecount then
%>
<a href="?page=1"> 第一页</a> |
<a href="?page=<%=page-1%>"> 上一页</a> |
下一页 | 最后页
<%end if%>
</td>
</tr>
</table>
<%
else
response.write"对不起,目前暂无数据!"
end if
%>

=====================================================================================

实例二:数据库链接和分页

<%
'建立数据库连接conn
set conn=Server.Createobject("adodb.connection")
conn.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _
"Data Source=" & Server.MapPath("/data/data.mdb")

'/data/data.mdb为数据库的路径,这里是连接的access的数据库,如过是SQL或者其它数据库写法就有点不一样了。

'建立一个数据集rs
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from news",conn,1,3

rs.pagesize=25 '设置每页记录条数
rs.movelast '游标移至最后conn,1,3不会出出负数
rs.movefirst '游标移到最前

if request("page")="" then '如果返回参数为空则设page为1
page=1
else
page=Request("page") '将URL参数page传给page变量
end if

rs.absolutepage=page '将本页设为page设置的页数

for i= 1 to rs.pagesize
if rs.eof then '如果没有数据集以及到结束则跳出循环
exit for
end if

response.Write(rs("newstitle")) '显示新闻标题

rs.movenext
next
%>

</div>

<!--翻页-->
<div style="font-size:12px;">
当前第<%=page%>页,共有<%=rs.pagecount%>页,共有:<%=rs.recordcount%>条记录<br />
<%if page=1 then%>
首页
<%else%>
<a href="showmore.asp?page=<%=1%>">首页</a>
<%end if%>

<%if page=1 then%>
上一页
<%else%>
<a href="showmore.asp?page=<%=page-1%>">上一页</a>
<%end if%>

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

<%if rs.pagecount<page+1 then%>
尾页
<%else%>
<a href="showmore.asp?page=<%=rs.pagecount%>">尾页</a>
<%end if%>
</div>
<%
rs.close '关闭数据集
set rs=nothing
conn.close '关闭连接
set conn=nothing
%>

==============================================================================

实例三:定义一个分页过程,放在公共调用的文件里

 

下面我只给你一段分页控制代码,前页还有上些如PageSize之类的语句就不贴了,就按你原来的就行了!。
假如:你要执行一个搜索,要求选择一个类别和输入一个关键字进行查找,我们就假定这两个表单名为SearchType和Keyword
要接收这两个表单变量值,我们在程序中定义两个变量并给它赋值(请不要用Request.Form("")或Request.QueryString(""),要不然就会出现参数丢失了!):

Dim SearchType,Keyword
SearchType=Request("SearchType")
Keyword=Request("Keyword")


下面我们就来定义分页控制函数:

<script language="javascript">
//跳转窗口
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
</script>

<%
'分页函数
'函数:ShowPageControl(RecordName,Information,PageUrl)
'参数说明
'RecordName记录集名
'Information表示单位,如:篇
'PageUrl分页网址(带参数)


Sub ShowPageControl(RecordName,Information,PageUrl)
Response.Write "共 <font color=#FF0000>"&RecordName.recordcount&"</font> "&Information&" "
Response.Write "第<font color=#FF0000>"&pagecount&"/"&RecordName.pagecount&"</font>页 "
Response.Write "<font color=#FF0000>"&RecordName.PageSize&"</font> 条/页 "
if pagecount=1 then response.Write("首 页 上一页 ")
if pagecount<>1 then response.Write("<a href="&PageUrl&"page=1>首 页</a> ")
if pagecount>1 then response.write("<a href="&PageUrl&"page="&(pagecount-1)&">上一页</a> ")
if pagecount<RecordName.pagecount then response.write("<a href="&PageUrl&"page="&(pagecount+1)&">下一页</a> ")
if pagecount=RecordName.pagecount then response.write("下一页 尾 页 ")
if pagecount<RecordName.pagecount then response.write("<a href="&PageUrl&"page="&RecordName.pagecount&">尾 页</a> ")
Response.Write " 跳转:<select name=select onChange=MM_jumpMenu('self',this,0) class='buttonface'>"
for ccount=1 to RecordName.pagecount
%>
<option value="<%=PageUrl&"page="&ccount%>" <%if pagecount=ccount then response.Write("selected=selected") end if%>>第<%=ccount%>页</option>
<%
next
Response.Write "</select>"
RecordName.close
Set RecordName=Nothing
End Sub
%>

调用方法:
(1)带参数:<%Call ShowPageControl(rs,"条记录","?Keyword="+Keyword+"&")%>
(2)不带参数:<%Call ShowPageControl(rs,"条记录","?")%>

优点:
可移值性好:拿到其它地方去只要使用调用方法调用该分页控制程序就可以了。
可维护性好:使用代码模块化更利于程序维护,一次修改上面的分页程序,各页面所有分页风格都更改!
调用方便:使用分页程序时,只要按上面的方法调用简单地就可实现分页功能,而无需在每页都输一大堆重复的代码!

 

下一篇 一个完整的asp+access的分页实例 上一页 1 2 3 4 5 下一页
 
公司简介 在线客服 客服中心 意见反馈 相关法律 隐私条款 广告服务 友情链接
Q链:515347638  电子邮箱:hanen@126.com 粤ICP备05086553