分页函数
函数如下:
<%
private function fenye(rs, pagesize,args)
Dim intcur
Dim intpagesize
Dim total
Dim inttotal
args = split(args,",")
if Request.querystring("page")="" then
intcur=1
page = "first"
else
select case request("page")
case "first"
intcur=1
case "previous"
intcur=cint(request("curpage"))
intcur=intcur-1
case "next"
intcur=cint(request("curpage"))
intcur=intcur+1
case "last"
intcur=cint(request("lastpage"))
case else
intcur=request("page")
end select
end if
%>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" height="58">
<%
if rs.eof then
response.write "没有栏目:("
else
intpagesize=pagesize
rs.pagesize=intpagesize
if not rs.eof then
rs.AbsolutePage=intcur
end if
total=rs.recordcount
inttotal=rs.pagecount
Dim i
i = 0
%>
<table border = 1 align = center>
<tr>
<%
Dim n
n = 0
do while n <= UBound(args)%>
<th>
<%response.write args(n)%>
</th>
<%
n = n + 1
loop
%>
</tr>
<%
do while NOT rs.EOF and i<intpagesize%>
<tr>
<%
Dim l
l = 0
do while l <= UBound(args)
%>
<td>
<%=rs(args(l))%>
</td>
<%
l = l + 1
loop
%>
</tr>
<%
i = i + 1
rs.MoveNext
loop
%>
</table>
<%
end if%>
</td>
</tr>
</table>
<div align="center"><br>
<%=intcur%> /<%=inttotal%>
<% if intcur>1 then %>
<a href="index.asp?page=previous&curpage=<%=intcur%>">上一页</a>
<%else%>
上一页
<%end if
intcur=cint(intcur)
inttotal=cint(inttotal)%>
<%if intcur<inttotal then%>
<a href="index.asp?page=next&curpage=<%=intcur%>">下一页</a>
<%else%>
下一页
<%end if%>
</div>
<%
rs.close
set rs = nothing
end function
%>
测试页面如下:
<!--#include file = "fenye.inc"-->
<%
dim conn
dim connstr
dim rst
on error resume next
connstr="DBQ="+server.mappath("Nwind.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
set rst = server.createobject("adodb.recordset")
rst.open "select * from orders",conn,1,1
call fenye(rst,7,"OrderID,CustomerID,ShipVia")
rst.close
set rst = nothing
conn.close
set conn = nothing
%>
说明:
使用时在asp页面顶部加入
<!--#include file = "fenye.inc">
在需要分页的地方调用函数:
如:call fenye(rst,7,"OrderID,CustomerID,ShipVia")
函数原型:
variant fenye(recordset rs,integer pagesize,String args)
参数说明如下:
rs: 传入的recordset
n: 要求每页显示的记录数
columns: 要求显示的数据库中的字段
做这样一个分页函数是因为有时自己写分页的时候觉得不是那么方便,每个地方都写一遍很浪费,也看到很多朋友都在问这个问题,所以写这样一个函数大家参考一下吧,第一次写这种东西,感觉很低级,但是还是希望大家捧场。。。。。谢谢!!!欢迎各种意见和建议!顺便说一下,这种ado的分页方法,我觉得实在是效率很低,因为我每次只要7条记录但是却要取出一个上百条甚至上千条的纪录集,如果一个服务器端的数据量少也就罢了,如果。。。。唉。。。所以,以后会再做几个不同原理的分页函数!
我的email:
xuchi@uibeonline.com
- · 在ASP中如何访问Novell下的数据库
- · 不通过dsn访问sqlserver
- · 数据库查询中的特殊字符的问题
- · 用SELECT创建记录和表
- · 关于SQL的存储过程一个悬而未决的老问题
- · 个人主页的数据库解决方案ASP
- · 连接WEB数据库的ADO性能提高技巧
- · ASP如何使用MYSQL数据库?
- · ASP.NET连SQL7接口源代码
- · 关于图片与文本同存在数据库中的具体思路
- · 一个图片数据的存和取的示例
- · ASP中使用SQL时的数据类型转换
- · T-SQL排序规则的优先顺序
- · T-SQL数据类型的优先顺序
- · SQLSELECT语句
- · 不通过dsn访问sqlserver
- · 袖珍数据库连接查询手册
- · SQLServer存储过程编程经验技巧
- · 在服务器端控制网页
- · ASP.NET中在线用户统计
- · 用ASP.NET和XML做的新闻系统
- · ASP.NET中自定义DataGrid分页设置的实现
- · ASP.NET中Cookie编程简明参考
- · 简单快捷实现ASP在线发邮件功能
- · 纯ASP代码生成图表函数1——柱状图调用示例
- · asp中随机生成文件名的函数
- · 18位身份证标准的详细规定,包括校验位的计算…
- · 加速ASP程序的显示速度
- · ASP提速技巧五则
- · ASP网页模板的应用
- · 风格模板初级不完全修改教程
- · len(),lift(),right()不能正常识别中文的解决…
- · 判断Cookies是否处于开启状态
- · 无组件图片与文本同步存入数据库的最简单的办…
- · 将SAX加入我们的ASP应用中(2)
- · 将SAX加入我们的ASP应用中(1)
- · Asp中Global.asa的应用(二)
- · Asp中Global.asa的应用(-)
