论坛登陆 用户: 密码:
联系我们
设为首页
加入收藏
业界新闻 网络编程 程序开发 网页图象 聊天通讯 软件应用 网络安全 硬件学堂 教育频道 站长club
  ·推荐新闻
 
·美前任官员认为amd告倒英特
·搜索引擎关键字排行简介
·网站优化教程(一)
·msn近期遭受木马病毒骚扰 用
·用qq管理你的系统^_^ 
·测评中心金山毒霸联合发布7
·qq群聊实名 普通用户不受影
·雅虎思科联手推数字邮件签名
·这18条背下来没人敢和你忽悠
·自己动手,拯救丢失的硬盘数
  ·资料搜索
 
  ·相关文章
·绑定txt文件到datagrid
·在用户离开页面时提示信息
·asp + oracle 分页方法(不用存
·asp + sqlserver 分页方法(不
·asp无组件上传进度条解决方案
·验证身份证号是否正确的代码
·类似于iis浏览的功能
·检查有日文片假名的新闻
·asp关键字函数运算附
·asp中也能解压缩rar文件
  ·热门新闻
首页>>网络编程>>asp专区>>文章正文

创建一个asp通用分页类(一)


 日期:2005-7-18 8:25:05     来源:易特网络技术   编辑:黑鹰  点击:
 从开始学习到使用asp到现在也写了不少程序了,最令人头痛的是写数据分页,每次都是由于几个变量名或几个参数的不同,因而需要每次都写哪一段冗长而又繁杂的分页代码,代码长了使得程序的可读性变差,容易出差,调试半天也找不出错在哪里,所以慢慢的我开始使用一些网上的提供的分页函数或分页类。的确省事不少,但是通常的函数和类的做法都是就数据显示部分也封装了起来,每次为了达到自己需要的显求效果要去改动函数或者类的本身,所以使用起来也不是怎么方便,自己写的分页改起来已经够复杂了,更不要说别人的了。

所以趁昨天有空自己写了一个分页的类,自我感觉良好(不要用鸡蛋砸我),在这里和大家分享一下自己的经验(谈不上经验,感想吧)。在这里我也不想说分页的原理了,反正大家都懂,要我往深入的谈我也不会。呵呵。

一、创建分页类的目标
在写之前,我曾想过,我究竟要写怎么样一个类,回想起以前写分页过程的时候,最烦的莫过于每次都要写哪一段复杂的分页代码,最大的烦恼每次都是仅仅几个变量名的不同。所以第一个要实现的就是要把这个封装起来,第二个就是要把分页的导航条也封装起来,第三个,不习惯哪些把数据显示部分也封装起来的方法,这不是方便编程,对与哪些对显示效果每次都不同的用户来说,比自己写分页还要麻烦。所以我的目地就是对recordset进行一些简单的封装。

二、创建过程
所以我写的第一个属性,就是返一个经过处理的recordse

public property get getrs()
  set xd_rs=server.createobject("adodb.recordset")
  xd_rs.pagesize=pagesize
  xd_rs.open xd_sql,xd_conn,1,1
  if not(xd_rs.eof and xd_rs.bof) then
  if int_curpage>xd_rs.pagecount then
int_curpage=xd_rs.pagecount
  end if
  xd_rs.absolutepage=int_curpage
  end if
  set getrs=xd_rs
end property

  这个属性的作用是更据指定recordset 的当前面,并到指针指向当前页的第一条记录,这个应该就是整个类的完成分页的核心了,当然,其中的一些参数是靠其它的属性来获取,所以这里顺便介绍一个这个类所要的基本参数

=============================================
'getconn 得到数据库连接
'
'=============================================
public property let getconn(obj_conn)
  set xd_conn=obj_conn
end property

'=============================================
'getsql 得到查询语句
'
'==============================================
public property let getsql(str_sql)
  xd_sql=str_sql
end property

'===============================================
'pagesize 属性
'设置每一页的分页大小
'===============================================
public property let pagesize(int_pagesize)
  if isnumeric(int_pagesize) then
  xd_pagesize=clng(int_pagesize)
  else
  str_error=str_error & "pagesize的参数不正确"
  showerror()
  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


以上几个是在使用类的过程必需要指定的参数,曾经我在写属性的时候对每个传入的参数加上isobject(obj_conn)等判断,为的是类的健壮,但是后来想来想去,这个对与asp来说没有必要,不加还能加快点速度,至于为什么这样,我想各位在使用过程中也会发现,加还不如不加。这也是我经过了思想斗争以后才去掉了,只保留了一些必要的验证。
一个参数就是当前页的获得,在程序中我用int_curpage来标识,这个的话放在类的创建过程中获得在好也没有了

'========================
  '设定一些参数的黙认值
  '========================
  xd_pagesize=10 '设定分页的默认值为10
  '========================
  '获取当前面的值
  '========================
  if request("page")="" then
  int_curpage=1
  elseif not(isnumeric(request("page"))) then
  int_curpage=1
  elseif cint(trim(request("page")))<1 then
  int_curpage=1
  else
  int_curpage=cint(trim(request("page")))
  end if 
end sub


到这里这个类分的功能基本已经实现了,只要在调用这个类的页面的url后面加上page=n,它就会显示第n页的内容了,所以接下去要做的就是创建一个数据导航条了,我把它设计为类似以面的形式

9 3[1] [2] [3] [4] [5] [6] [7] [8] 4 :页次:1/8页 共51条记录 7条/每页


 


上一篇:创建一个asp通用分页类(二)
下一篇:用asp实现qq在线查询
[发送给好友] [打印本页] [关闭窗口] [返回顶部转载请注明来源:http://www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 黑鹰 投稿作者: 易特网络
信息来源: 易特网络技术 录入时间: 2005-7-18 8:25:05
浏览次数: 投稿信箱: shtghy@163.com
设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights ©2004-2005 iyit.net all rights reserved. 网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息