中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > Asp > 综合文章
分页函数
作者:未知 时间:2002-12-30 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无

函数如下:

<%
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

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有