• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> ASP开发 >> 输出打印 >> 详细内容
 

推荐文章

 
 

热点文章

  • Server.Htmlencode的用法
  • 自己动手,结合javascript和dhtml做一个ubb编辑器
  • ASP中几种分页显示的比较
  • 搜索引擎优化:用ISAPI_Rewrite实现asp的静态化
  • 关于客户端用ASP参生报表
  • Haneng.com的简单留言板制作源程序例子
  • 一些ASP小源程序
  • GB2312转UTF-8
  • asp分页显示详论
  • ASP无组件上传图片的基本方法
  • 关于打印页面的一些经验
  • 统计在线人数、每日访问人数和总人数
 
 

相关文章

  • 动感首页更新实现
  • 完整的站点访问统计系统
  • 对数据库中的记录用上一条下一条显示
  • 对数据库中的记录用上一条下一条显示
  • 不能ASP图像组件来生成图像的ASP计数器程序
  • ASP技术在论坛中的运用
  • ASP环境下邮件列表功能的实现
  • 一个BBS的源代码
  • 如何使用ASP在自己的网站建立投票机制
  • 如何用ASP编写网站统计系统
  • 构建你的网站新闻自动发布系统
  • 制作一个个人搜索引擎(源码)
 
 

百度搜索

 
 

一个通用分页类

  • 阅览次数:
  • 文章来源: bbs.dvbbs.net
  • 原文作者: kiyeer
  • 整理日期: 2006-10-03
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

曾经看过许多分页的文章,参考其中一些意见,写成一个类,希望能带来方便



<%
'=====================================================================
'代码编写  kiyeer
'Email:   kiyeer@tom.com
'本程序可以免费使用、修改,希望我的程序能给你一定的帮助
'不过希望把修改后程序发送一份给本人,谢谢!
'但请保留以上请息,它并不影响程序执行的速度

'程序特点
'本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义,支持URL多个参数

'使用说明
'属性说明
'PageStyle                      定义是否用数字分页显示方式,默认为上下页分面方式
'PageNum                        定义每页显示多少个数字导航页
'PageSize      定义分页每一页的记录数
'GetRS       返回经过分页的Recordset此属性只读
'GetConn      得到数据库连接
'GetSQL       得到查询语句
'GetKey                         得到URL地址参数(搜索信息时必须用)
'方法说明
'ShowPage      显示分页导航条,唯一的公用方法
'=====================================================================


Class PageClass
  Private PSC_Conn,PSC_Rs,PSC_SQL,PSC_PageSize,Err,PSC_FormAction,PSC_PP,Ver 
  Private PSC_Errors,PSC_CurPage,PSC_TotalPage,PSC_TotalRecord,PSC_Key,PSC_Show_Style
  Dim str_Turn_First,str_Turn_Prev,str_Turn_Next,str_Turn_Last
  'Class_Initialize 类的初始化
  '初始化当前页的值
  Private Sub Class_Initialize
 Ver ="Version 1.02"       '设置版本信息
 PSC_PageSize=10        '设定分页的默认值为10
 Err=0                     '初始化错误为0
 PSC_Show_Style=false      '初始化,不用数字分页方式
 PSC_PP=5                  '定义每页显示多少个数字导航页
 str_Turn_First="<font style=""font-family:webdings"" ShowIt=""第一页"">9</font>" '定义第一页按钮显示样式
    str_Turn_Prev="<font style=""font-family:webdings"" ShowIt=""上一页"">7</font>"  '定义前一页按钮显示样式
    str_Turn_Next="<font style=""font-family:webdings"" ShowIt=""下一页"">8</font>"  '定义下一页按钮显示样式
    str_Turn_Last="<font style=""font-family:webdings"" ShowIt=""最后一页"">:</font>" '定义最后一页按钮显示样式
 '获取当前面的页面值
 If request("page")="" Then
  PSC_CurPage=1
 ElseIf not(IsNumeric(request("page"))) Then
  PSC_CurPage=1
 ElseIf CInt(Trim(request("page")))<1 Then
  PSC_CurPage=1
 Else
  PSC_CurPage=CInt(Trim(request("page")))
 End If
  End Sub


  '设置 Terminate 事件。
  Private Sub Class_Terminate  
 PSC_Rs.close
 Set PSC_Rs=nothing
  End Sub


  '属性,设置每一页的分页大小
  Public Property Let PageSize(Int_PageSize)
 If IsNumeric(Int_PageSize) Then
  PSC_PageSize=CLng(Int_PageSize)
 Else
  PSC_Errors=PSC_Errors & "页面大小的参数不正确"
  Err=1
 End If
  End Property


  '属性,设置分页方式
  Public Property Let PageStyle(str_Style)
 PSC_Show_Style=CBool(str_Style)
  End Property


  '属性,设置分页方式
  Public Property Let PageNum(int_PageNum)
 PSC_PP=Cint(int_PageNum)
  End Property


  '属性,返回分页后的记录集
  Public Property Get GetRs()
 Set PSC_Rs=Server.createobject("adodb.recordset")
 PSC_Rs.PageSize=PSC_PageSize
 PSC_Rs.Open PSC_SQL,PSC_Conn,1,1
 If not(PSC_Rs.eof and PSC_Rs.BOF) Then
     PSC_TotalPage=PSC_Rs.pagecount
     PSC_TotalRecord=PSC_Rs.RecordCount
     If PSC_TotalRecord<=0 Then
     PSC_Errors=PSC_Errors & "对不起,没有符合条件的记录"
     Err=2
     End If
     If PSC_CurPage>PSC_TotalPage Then
     PSC_CurPage=PSC_TotalPage
     End If
  PSC_Rs.AbsolutePage=PSC_CurPage
 Else
     PSC_Errors=PSC_Errors & "对不起,没有符合条件的记录"
  Err=3
 End If
 Set GetRs=PSC_Rs
  End Property


  '得到数据库连接
  Public Property Let GetConn(obj_Conn)
 Set PSC_Conn=obj_Conn
  End Property


  '得到查询语句
  Public Property Let GetSQL(str_sql)
 PSC_SQL=str_sql
  End Property


  '设置页面地址参数
  Public Property Let GetKey(Str_key)
    if Trim(Str_key)<>"" then
   PSC_Key=Str_key
   PSC_FormAction=right(PSC_Key,len(PSC_Key)-1) '设置Form转页参数
    end if
  End Property


  '创建分页导航条
  Public Sub ShowPage()
 Dim PSC_Str_Temp
 if Err=0 then
   response.write "<table border=0 width=""100%"" cellpadding=0 cellspacing=2><form name=gotopage method=post action='?"&PSC_FormAction&"'><tr><td align=left style=""font-size:9pt"">"
   PSC_Str_Temp=ShowOtherInfo
   response.write PSC_Str_Temp
   if PSC_Show_Style then
     PSC_Str_Temp=ShowNumStyle
     response.write PSC_Str_Temp
   else
     PSC_Str_Temp=ShowTextStyle
     response.write PSC_Str_Temp
   end if
   response.write " 转到:<input type='text' name='page' size=2 maxLength=3 class='in' value="&PSC_CurPage&">页&nbsp;"
      response.write "<input class=button type='submit' value='GO'>"
   response.write "</td></tr></form></table>"
 end if
  End Sub


  '上下页导航方式
  Private Function ShowTextStyle()
 Dim PSC_Str_Temp
 If PSC_CurPage=1 Then
  PSC_Str_Temp=PSC_Str_Temp&"&nbsp;"&str_Turn_First&"&nbsp;"&str_Turn_Prev
 Else
  PSC_Str_Temp=PSC_Str_Temp&"&nbsp;<a href=?Page=1"&PSC_Key&">"&str_Turn_First&"</a>&nbsp;<a href=?Page="&PSC_CurPage-1&PSC_Key&">"& str_Turn_Prev&"</a>"
 End If
 If PSC_CurPage>=PSC_TotalPage Then
  PSC_Str_Temp=PSC_Str_Temp&"&nbsp;"&str_Turn_Next & "&nbsp;" & str_Turn_Last
 Else
  PSC_Str_Temp=PSC_Str_Temp&"&nbsp;<a href=?Page="&PSC_CurPage+1&PSC_Key&">"&str_Turn_Next&"</a>&nbsp;<a href=?Page="&PSC_TotalPage&PSC_Key&">"&str_Turn_Last&"</a>"
 End If
 ShowTextStyle=PSC_Str_Temp
  End Function


  '数字导航方式
  Private Function ShowNumStyle()
 Dim PSC_Str_Temp,PSC_PN,PSC_PI,PSC_PageNum
 PSC_PI=1
 if PSC_TotalPage mod PSC_PP > 0 then
      PSC_PageNum=PSC_TotalPage\PSC_PP+1
    else
      PSC_PageNum=PSC_TotalPage\PSC_PP
    end if
    if PSC_CurPage mod PSC_PP > 0 then
      PSC_PN=PSC_CurPage\PSC_PP+1
    else
      PSC_PN=PSC_CurPage\PSC_PP
    end if
 if cint(PSC_PageNum)>1 and cint(PSC_PN)<>1 then
      PSC_Str_Temp=PSC_Str_Temp&"&nbsp;<a href='?page=1"&PSC_Key&"'>"&str_Turn_First&"</a>&nbsp;<a href='?page="&(PSC_PN-1)*PSC_PP&PSC_Key&"'>"&str_Turn_Prev&"</a>"
    end if
 for PSC_PI=1+(PSC_PN-1)*PSC_PP to PSC_PN*PSC_PP
      if cint(PSC_PI)>cint(PSC_TotalPage) then exit for
      if cint(PSC_CurPage)=cint(PSC_PI) then
         PSC_Str_Temp=PSC_Str_Temp&"&nbsp;<font color=#990000><b>"&PSC_PI&"</b></font>"
      else
         PSC_Str_Temp=PSC_Str_Temp&"&nbsp;<a href='?page="&PSC_PI&PSC_Key&"' ShowIt=""第"&PSC_PI&"页"">"&PSC_PI&"</a>"
      end if
    next
    if cint(PSC_PageNum)>1 and cint(PSC_PN)<>cint(PSC_PageNum) then
      PSC_Str_Temp=PSC_Str_Temp&"&nbsp;<a href='?page="&PSC_PN*PSC_PP+1&PSC_Key&"'>"&str_Turn_Next&"</a>&nbsp;<a href='?page="&PSC_TotalPage&PSC_Key&"'>"&str_Turn_Last&"</a>"
    end if
 ShowNumStyle=PSC_Str_Temp
  End Function


  '分页的其它信息
  Private Function ShowOtherInfo()
 Dim PSC_Str_Temp
 PSC_Str_Temp="页次:<font color=blue><b>"&PSC_CurPage&"</b></font>/<font color=red><b>"&PSC_TotalPage&"</b></font>页 共<font color=red><b>"&PSC_TotalRecord&"</b></font>条记录 <font color=red><b>"&PSC_PageSize&"</b></font>条/页"
 ShowOtherInfo=PSC_Str_Temp
  End Function


  '获取类错误值
  Public Function Error()
 Error=Err
  End Function


  '获取类错误信息
  Public Function GetErrors()
 GetError=PSC_Errors
  End Function


  '获取类版本信息
  Public Function Version()
 Version=Ver
  End Function
End class
%>

上一篇:MySQL数据库的导入导出 和 Liunx的权限
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号