当前位置:编程学习 > asp >>

asp+oracle分页程序类(XDOWNPAGE2.0)(1)

答案:    
  先将分页类源代码发上来,随后有空会发一些实例来讲解其用法,以及如何扩展其功能。
  
  类原代码如下:
  
  < %
  '==============================================
  'XDOWNPAGE ASP版本
  '当前版本:2.0
  '
  '
  '原版本 1.00
  'Code by zykj2000
  'Email: zykj_2000@163.net
  'BBS: http://bbs.513soft.net
  '
  '
  '升级版本:1.5 (asp + oracle)
  updated by doublel
  Email:
  blog: ttp://blog.csdn.net/doublel/
  '升级说明:
  '
  '
  '升级版本:2.0 ' (asp + oracle) ---->当前版本
  '保留原名:XDOWNPAGE
  Updated by northsnow
  'email: northsnow@163.com
  'blog: http://blog.csdn.net/precipitant
  '升级说明:
  '1 , 数据查询时只查询当前页所包含的记录,大大降低了数据传输量
  '2 , 如果正常的页导航,不用每次都查询总记录数,只要第一次查询后,后来通过参数传递即可
  '3 , 支持动态更改页大小
  '4 , 支持动态排序
  '5 , 本程序只支持oracle,如果想用在sqlserver或者其他类型的数据库,请自行修改:Public Property Let GetSQL(str_sql)即可。
  '
  '
  '其他程序修改者信息,请在源代码中查对!!!
  '本程序可以免费使用、修改、复制、转载、引用,希望我的程序能为您的工作带来方便
  '但请保留以上请息,特别是是原著信息。另外如果作为商业用途,请与原著和该版本升级
  '人联系以取得许可。
  '
  '
  '程序特点
  '本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义,
  '支持URL多个参数
  '
  '使用说明
  '程序参数说明
  'PapgeSize 定义分页每一页的记录数
  'GetRS 返回经过分页的Recordset此属性只读
  'GetConn 得到数据库连接
  'GetSQL 得到查询语句
  'totalRecordCount 传递总记录数
  
  '程序方法说明
  'ShowPage 显示分页导航条,唯一的公用方法
  'ShowPageSizeChange() 显示改变页大小的列表
  '
  '例:
  '
  ' '包含文件
  '
  ' Set mypage=new xdownpage '创建对象
  ' mypage.getconn=conn '得到数据库连接
  ' mypage.getsql="select * from productinfo order by id asc"
  ' mypage.pagesize=5 '设置每一页的记录条数据为5条
  'mypage.totalRecordCount=rsTotalCount 设置总记录数
  ' set rs=mypage.getrs() '返回Recordset
  'mypage.GetSubmitForm="frmQuery" ' 分页默认提交的表单,currentpage参数
  'Response.write(mypage.GetSubmitForm1()) '输出分页提交的函数
  ' mypage.showpage() '显示分页信息,这个方法可以,在set rs=mypage.getrs()以后
  ' 任意位置调用,可以调用多次
  ' do while not rs.eof '接下来的操作就和操作一个普通Recordset对象一样操作
  ' response.write rs(0) & "
  ' " '这里就可以自定义显示方式了
  ' rs.movenext
  ' loop
  '
  '添加了保存当前页面数量的提交脚本
  '函数为GetSubmitForm()
  '需要提交给函数GetSubmitForm一个表单名字
  '在这个提交的表单里面保存变量flag,currentpage,pagesize,rsTotalCount 四个参数
  '例子如下
  'flag=request("flag")
  'currentpage=request("currentpage")
  'currentpage=request("pagesize")
  'currentpage=request("rsTotalCount")
  '在提交的表单里面加入下面四个input
  '<input name="flag" type="hidden" value="< % =flag% >">
  '<input name="currentpage" type="hidden" value="< % =currentpage% >">
  '<input name="pagesize" type="hidden" value="< % =pagesize% >">
  '<input name="rsTotalCount" type="hidden" value="< % =rsTotalCount% >">
  '==============================================
  
  Const Btn_First="<font face=""webdings"">9</font>" '定义第一页按钮显示样式
  Const Btn_Prev="<font face=""webdings"">3</font>" '定义前一页按钮显示样式
  Const Btn_Next="<font face=""webdings"">4</font>" '定义下一页按钮显示样式
  Const Btn_Last="<font face=""webdings"">:</font>" '定义最后一页按钮显示样式
  Const XD_Align="center" '定义分页信息对齐方式
  Const XD_Width="100%" '定义分页信息框大小
  Const XD_Height="20"
  
  
  Class Xdownpage '类 从这里开始
  
  '变量定义
  public int_totalPage '总页数
  public int_curcount '当前页的记录数
  public XD_PageSize '页大小
  Private int_curpage '当前页号
  Private int_totalRecord '总记录数
  Private XD_Conn '数据库连接对象
  Private XD_Rs '记录集对象
  Private XD_SQL '主sql语句
  Private XD_Count_SQL '查询总记录数的sql语句
  Private Str_errors
  Private str_URL
  Private XD_sURL
  Private SubmitForm '所需的查询表单名字(隐藏表单名字)
  
  
  
  '=================================================================
  'PageSize 属性
  '设置每一页的分页大小
  '=================================================================
  Public Property Let PageSize(int_PageSize)
   If IsNumeric(Int_Pagesize) Then
   if clng(Int_Pagesize)>0 then
   XD_PageSize=CLng(int_PageSize)
   else
   XD_PageSize=10
   end if
   Else
   XD_PageSize=10
   End If
  End Property
  
  Public Property Get PageSize
   If XD_PageSize="" or (not(IsNumeric(XD_PageSize))) Then
   PageSize=10
   Else
   PageSize=XD_PageSize
   End If
  End Property
  
  
  '=================================================================
  'GetRS 属性
  '返回分页后的记录集
  '=================================================================
  Public Property Get GetRs()
   Set XD_Rs=Server.createobject("adodb.recordset")
   'XD_Rs.PageSize=PageSize
   XD_Rs.CursorLocation=3
   XD_Rs.Open XD_SQL,XD_Conn,3,1
   int_curcount=XD_Rs.RecordCount
   if int_totalRecord="" or not isNumeric(int_totalRecord) then int_totalRecord=0 '规范化int_totalRecord的值
   if int_totalRecord=0 and (int_curcount>=PageSize or int_curpage>1) then call queryRsCount() '查询总记录数
   if err.number<>0 then
   Response.Write err.Clear
   end if
   Set GetRs=XD_RS
  End Property
  
  '=================================================================
  'queryRSCount 方法
  '查询总记录数
  '=================================================================
  Public sub queryRsCount()
   '下面代码用于计算总记录数
   if XD_Count_SQL<>"" then<

上一个:asp+oracle分页程序类(XDOWNPAGE2.0)(2)
下一个:javascript利用xmlhttp获得服务器时钟的方法

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,