`
happmaoo
  • 浏览: 4494130 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ASP经典分页类

阅读更多

'=====================================================================
'XDOWNPAGE ASP版本
'版本1.00
'Code byzykj2000
'Email:zykj_2000@163.net
'BBS:http://bbs.513soft.net
'本程序可以免费使用、修改,希望我的程序能为您的工作带来方便
'但请保留以上请息
'
'程序特点
'本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义,
'支持URL多个参数
'
'使用说明
'程序参数说明
'PapgeSize定义分页每一页的记录数
'GetRS返回经过分页的Recordset此属性只读
'GetConn得到数据库连接
'GetSQL得到查询语句
'程序方法说明
'ShowPage显示分页导航条,唯一的公用方法
'
'例:
'<!--#include file="conn.asp"-->
'<!--#include file="xdownpage.inc"-->'包含文件
'
'Set mypage=new xdownpage'创建对象
'mypage.getconn=conn'得到数据库连接
'mypage.getsql="select * from productinfo order by id asc"
'mypage.pagesize=5'设置每一页的记录条数据为5条
'set rs=mypage.getrs()'返回Recordset
'mypage.showpage()'显示分页信息,这个方法可以,在set rs=mypage.getrs()以后
' 任意位置调用,可以调用多次
'for i=1 to mypage.pagesize '接下来的操作就和操作一个普通Recordset对象一样操作
'if not rs.eof then'这个标记是为了防止最后一页的溢出
'response.write rs(0) & "
"'这里就可以自定义显示方式了
'rs.movenext
'else
'exit for
'end if
'next
'
'=====================================================================

Const Btn_First="9"'定义第一页按钮显示样式
Const Btn_Prev="3"'定义前一页按钮显示样式
Const Btn_Next="4"'定义下一页按钮显示样式
Const Btn_Last=":"'定义最后一页按钮显示样式
Const XD_Align="center"'定义分页信息对齐方式
Const XD_Width="100%"'定义分页信息框大小
Const XD_Height="20"
Class Xdownpage
Private XD_PageCount,XD_Conn,XD_Rs,XD_SQL,XD_PageSize,Str_errors,int_curpage,str_URL,int_totalPage,int_totalRecord


'=================================================================
'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

'=================================================================
'GetRS属性
'返回分页后的记录集
'=================================================================
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

'================================================================
'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

'==================================================================
'Class_Initialize类的初始化
'初始化当前页的值
'
'==================================================================
Private Sub Class_Initialize
'========================
'设定一些参数的黙认值
'========================
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

'====================================================================
'ShowPage创建分页导航条
'有首页、前一页、下一页、末页、还有数字导航
'
'====================================================================
Public Sub ShowPage()
Dim str_tmp

int_totalRecord=XD_RS.RecordCount
If int_totalRecord<=0 Then
str_error=str_error & "总记录数为零,请输入数据"
Call ShowError()
End If
If int_totalRecord<pagesize then>int_TotalPage=1<br>Else<br>If int_totalRecord mod PageSize =0 Then<br>int_TotalPage = Int(int_TotalRecord / XD_PageSize * -1)*-1<br>Else<br>int_TotalPage = Int((int_TotalRecord / XD_PageSize * -1)*-1)+1<br>End If<br>End If<br><br>If Int_curpage&gt;int_Totalpage Then<br>int_curpage=int_TotalPage<br>End If<br><br>'===============================================================================<br>'显示分页信息,各个模块根据自己要求更改显求位置<br>'===============================================================================<br>response.write " <table width="&amp;XD_Width&amp;" border="0"><tbody><tr><form> <td align="&amp;XD_Align&amp;" height="&amp;XD_Height&amp;">"<br>str_tmp=ShowFirstPrv<br>response.write str_tmp<br>str_tmp=showNumBtn<br>response.write str_tmp<br>str_tmp=ShowNextLast<br>response.write str_tmp<br>str_tmp=ShowPageInfo<br>response.write str_tmp<br>'Response.write "</td> <td>"<br>ShowGoto<br>response.write "</td> </form></tr></tbody></table>"<br><br>End Sub</pagesize>

'====================================================================
'ShowFirstPrv显示首页、前一页
'
'
'====================================================================
Private Function ShowFirstPrv()
Dim Str_tmp,int_prvpage
If int_curpage=1 Then
str_tmp=Btn_First&""&Btn_Prev
Else
int_prvpage=int_curpage-1
str_tmp=""&Btn_First&""& Btn_Prev&""
End If
ShowFirstPrv=str_tmp
End Function

'====================================================================
'ShowNextLast下一页、末页
'
'
'====================================================================
Private Function ShowNextLast()
Dim str_tmp,int_Nextpage

If Int_curpage>=int_totalpage Then
str_tmp=Btn_Next & "" & Btn_Last
Else
Int_NextPage=int_curpage+1
str_tmp=""&Btn_Next&""& Btn_Last&""
End If
ShowNextLast=str_tmp
End Function


'====================================================================
'ShowNumBtn数字导航
'
'
'====================================================================
'Private Function showNumBtn()
'Dim i,str_tmp
'For i=1 to int_totalpage
'str_tmp=str_tmp & "["&i&"]"
'Next
'showNumBtn=str_tmp
'
'End Function
'====================================================================
'ShowNumBtn修改后的数字导航
'
'====================================================================
Function showNumBtn()
Dim i,str_tmp,end_page,start_page
if int_curpage>4 then
if int_curpage+2<int_totalpage then>start_page=int_curpage-2<br>end_page=int_curpage+2 <br>else<br>start_page=int_totalpage-4 <br>end_page=int_totalpage <br>end if <br>else <br>start_page=1 <br>if int_totalpage&gt;5 then <br>end_page=5<br>else<br>end_page=int_totalpage<br>end if<br>end if <br>For i=start_page to end_page<br>str_tmp=str_tmp &amp; " [<a href="http://dev.csdn.net/article/35/&amp;%20geturl%20&amp;%20i%20&amp;">"&amp;i&amp;"</a>] "<br>Next<br>showNumBtn=str_tmp<br>End Function</int_totalpage>

'====================================================================
'ShowGoto页面跳转
'
'
'====================================================================
Private Function ShowGoto()
Dim M_item
'========================================================
'将返回的Url参数逐个的写入隐藏域中,以便与参数继续传递
'========================================================
For Each M_item In Request.QueryString
If InStr("page",M_Item)=0 Then '从参数中除去 "page" 的值
Response.Write ""
End If
Next
'========================================================
response.write "转到第:"
response.write "页"
End Function


'====================================================================
'ShowPageInfo分页信息
'更据要求自行修改
'
'====================================================================
Private Function ShowPageInfo()
Dim str_tmp
str_tmp="[页次:"&int_curpage&"/"&int_totalpage&"页] [共"&int_totalrecord&"条] ["&XD_PageSize&"条/页]"
ShowPageInfo=str_tmp
End Function

'====================================================================
'修改后的获取当前Url参数的函数
'Codeing by Redsun
'====================================================================
Private Function GetUrl()
Dim ScriptAddress, M_ItemUrl, M_item
ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME"))&"?"'取得当前地址
If (Request.QueryString <> "") Then
M_ItemUrl = ""
For Each M_item In Request.QueryString
If InStr("page",M_Item)=0 Then
M_ItemUrl = M_ItemUrl & M_Item &"="& Server.URLEncode(Request.QueryString(""&M_Item&"")) & "&"
End If
Next
ScriptAddress = ScriptAddress & M_ItemUrl'取得带参数地址
End If
GetUrl = ScriptAddress & "page="
End Function

'====================================================================
' 设置 Terminate 事件。
'====================================================================
Private Sub Class_Terminate
XD_RS.close
Set XD_RS=nothing
End Sub
'====================================================================
'ShowError错误提示
'====================================================================
Private Sub ShowError()
If str_Error <> "" Then
Response.Write("
" & SW_Error & "")
Response.End
End If
End Sub

End class

分享到:
评论

相关推荐

    ASP分页通用类 asp分页

    接下来,我们来看ASP分页类的设计。一个典型的分页类可能包含以下几个主要部分: 1. **初始化**:设置初始的分页参数,如每页显示的记录数、当前页数等。 2. **计算总页数**:根据数据库查询到的总记录数,计算出总...

    asp分页类,套用方便,收藏

    "asp分页类"就是用来实现这种功能的代码库或组件。 分页类通常包含以下几个核心知识点: 1. **参数处理**:分页类需要接收一些参数,如当前页码、每页显示条目数、总记录数等。这些参数的正确处理是分页功能的基础...

    asp.net 分页类

    ASP.NET 分页类是用于处理大量数据并分批次显示的关键技术,它允许用户在Web应用程序中轻松地浏览大型数据集,提高用户体验,并减轻服务器负担。相比于Visual Studio (VS) 自带的分页控件,自定义分页类提供了更高的...

    asp.net 通用分页类

    `asp.net 通用分页类`就是为了解决这个问题而设计的,它允许开发者创建一个可复用的组件,以便在不同的数据展示页面上实现高效且灵活的分页功能。 首先,我们来看`C#`语言是如何实现分页逻辑的。在C#中,可以创建一...

    叶子ASP分页类1.2

    【叶子ASP分页类1.2】是一款专为ASP(Active Server Pages)开发的分页组件,主要用于解决在网页上显示大量数据时的分页问题。这个组件版本为1.2,更新日期为2007年10月23日,由开发者“叶子”进行维护和更新。 在...

    叶子asp分页类(好用)

    名称: 叶子asp分页类 Name: ShowoPage(vbs class) RCSfile: ReadMe.txt Revision: 0.12.20051114.f Author: Yehe(叶子) Released: 2005-11-14 09:40:13 Descript: ASP分页类,支持access/mssql/mysql/sqlite ...

    asp分页类,很详细,很快

    这篇压缩包文件"aspfenyelei_asp"很可能包含了一个详细的ASP分页类,这种类通常包含了一系列方法和属性,用于实现高效的分页功能。下面我们将深入探讨ASP分页的相关知识点。 1. **基础概念**:在ASP中,分页涉及到...

    asp.net写的分页类

    本篇将深入探讨标题"asp.net写的分页类"所涉及的核心知识点,以及如何实现一个简单、高效的分页解决方案。 首先,我们需要理解ASP.NET分页的基本原理。在ASP.NET中,分页通常通过ADO.NET或Entity Framework等数据...

    叶子asp分页类0.12

    名称: 叶子asp分页类 Name: ShowoPage(vbs class) RCSfile: ReadMe.txt Revision: 0.12.20051114.f Author: Yehe(叶子) Released: 2005-11-14 09:40:13 Descript: ASP分页类,支持access/mssql/mysql/sqlite ...

    asp源码-HHYY asp分页类(原印象分页类) v2.0 最终版.zip

    asp源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip asp源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip asp源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip asp源码—HHYY asp分页类(原印象分页类) ...

    asp超强分页类文档

    在这个场景中,我们讨论的是一个优化过的ASP分页类,它声称可以将分页速度提升100倍,特别适用于处理大量数据的情况。传统的分页方法可能会在处理百万级数据时遇到性能瓶颈,因为它们通常需要多次查询数据库以获取...

    asp高效分页类(ASP+Access)

    "asp高效分页类(ASP+Access)"就是解决这个问题的一个解决方案,它提供了一种高效的方法来处理大量数据的分页显示,特别适用于使用Access数据库的Web应用程序。 在ASP中,实现分页通常涉及以下几个关键知识点: 1. ...

    asp.net通用分页类

    总的来说,ASP.NET通用分页类是解决大量数据展示问题的有效工具,它将分页逻辑封装起来,使得开发者可以专注于业务逻辑,而不用每次都编写重复的分页代码。通过设计良好的分页类,我们可以实现高效、灵活的分页功能...

    高效asp分页类,带例子

    "高效asp分页类"就是针对这种情况设计的,旨在处理大数据集时保持快速响应,避免页面加载过慢或服务器压力过大。 高效asp分页类的核心在于优化了数据检索和页面渲染的过程,通常包括以下几个关键点: 1. **数据...

    叶子asp分页类代码_jb51.net

    为了简化开发者的工作,市面上出现了一些实用的分页类库,其中“叶子asp分页类代码”就是一款颇受欢迎的解决方案,为ASP项目提供了一套完整的分页处理机制。 分页类库的使用,可以极大程度上减少开发人员对于分页...

    asp静态生成 分页类

    - `china-code.net.txt`:可能是某个编程网站的代码片段引用,提供了有关ASP分页的参考信息。 - `13232707776`:此文件名看起来不太符合常规,可能是一个误传的文件,或者是一个特殊用途的文件,如日志或配置信息...

    几个高效的ASP分页类

    本文将详细讲解几个高效的ASP分页类,并提供如何在实际项目中应用这些分页程序的方法。 首先,我们需要理解分页的基本原理。在ASP中,通常通过SQL查询从数据库中获取数据,并使用LIMIT或TOP语句来限制每次返回的...

    asp超简单分页显示

    二、ASP分页基础 在ASP中,我们通常会使用SQL查询来获取特定页的数据。例如,如果我们每页显示10条记录,第n页的数据可以通过以下SQL语句获取: ```sql SELECT * FROM 表名 LIMIT (n-1)*10, 10 ``` 这里的`(n-1)*...

Global site tag (gtag.js) - Google Analytics