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

分页类

阅读更多
根据ado纪录集自动生成列表和分页,需要先生成recordset:rs_Grid
<%
'===========================================================
'分页类,大体思想由.Net的DataGrid的使用方式而来
'功能:自动生成datagrid列表头和内容,以及分页栏
'根据网友bubuy (澎湃 NoMoneyToBuy)得分页函数修改成类
'使用示例:
'dim DG
'dim Url
'dim Fld(2)
'dim FldName(2)
'dim FldWidth(2)
'Fld(0) = "ID"
'Fld(1) = "Title"
'Fld(2) = "Input_Date"
'FldName(0) = "编号"
'FldName(1) = "标题"
'FldName(2) = "录入日期"
'FldWidth(0) = "10%"
'FldWidth(1) = "60%"
'FldWidth(2) = "30%"
'set DG = new DataGrid
'DG.DataSource = rs_Grid
'DG.titleColor = "#DCE19D"
'DG.PageSize = 1
'DG.Fields = Fld
'DG.FieldsName = FldName
'DG.fieldWidth = FldWidth
'Url = request.ServerVariables("URL") & "?Param=testParameter"//存在原有参数的情况
'DG.Url = Url
'DG.Generate()
'=============Designed By windancer 2003.10.17===============
Class DataGrid
Private obj_RecordSet ' recordset
Private int_PageSize ' 每页纪录数
'两个数组保存数据库字段名和中文名称
Private Arr_Field ' 数据库字段
Private Arr_FieldName ' 字段显示名称()
Private Arr_FieldWidth ' 字段显示宽度
Private str_TitleColor ' 表头颜色#efffce
Private str_Url '请求的URL
Private str_Error ' 出错信息

Private Sub Class_Initialize()
int_PageSize = 10
str_TitleColor = "#ffffff"
str_Error = ""
End Sub
'===============================================================
'属性信息
'================================================================
'-----------------------------------
'数据源,暂时只支持RecordSet
'-----------------------------------
Public Property Let dataSource(obj)
set obj_RecordSet = obj
End Property

Public Property Let pageSize(intvalue)
int_PageSize = intvalue
End Property

Public Property Get pageSize
PageSize= int_Categoryid
End Property

Public Property Let Fields(Arr)
Arr_Field = Arr
End Property

Public Property Get Fields
Fields= Arr_Field
End Property

Public Property Let fieldsName(Arr)
Arr_FieldName = Arr
End Property

Public Property Get fieldsName
fieldsName= Arr_FieldName
End Property

Public Property Let fieldWidth(Arr)
Arr_FieldWidth = Arr
End Property

Public Property Get fieldWidth
fieldWidth= Arr_FieldWidth
End Property

Public Property Let titleColor(strvalue)
str_TitleColor = strvalue
End Property

Public Property Get titleColor
titleColor= str_TitleColor
End Property
'-----------------------------------------------------
'这个属性是为了保存Url路径
'如果当前路径带有参数,那么就用&Page=x,否则就用?Page=x
'------------------------------------------------------
Public Property Let Url(Strvalue)
str_Url = Strvalue
End Property

Public Property Get Url
Url= str_Url
End Property

'================================================================
'方法
'================================================================
'----------------------------------------------------------------
'显示当前错误
'----------------------------------------------------------------
Private Sub ShowLastError()
response.Write(str_Error)
response.End()
End Sub
'----------------------------------------------------------------
'Generate()
'利用ado分页
'-----------------------------------------------------------------
Public Sub Generate()
'----检查参数--------------------------
Check
'---------变量声明-----------------------------------
Dim FieldCount '显示字段
FieldCount = Ubound(Arr_Field) + 1
Dim CurrentPage '当前页
Dim PgCount '总页数
Dim RecCount '记录数,本来用rs.recordCount可以取到,保存下来效率会比较高
Dim HasOtherParam 'URL是否包含其他参数
Dim PageParam '当前分页Url参数
Dim PageInfomation '当前分页状态信息
Dim Seperator '设置分隔符
Seperator = ""
'-------------处理Url参数---------------------------
if instr(str_Url,"?")>0 then
HasOtherParam = true
PageParam = "&Page="
else
HasOtherParam = false
PageParam = "?Page="
end if
'----------获取当前页--------------------------------
CurrentPage = request.QueryString("Page")
if CurrentPage="" then
CurrentPage=1
else
CurrentPage=Cint(CurrentPage)
end if
'-----------处理数据源------------------------------
obj_RecordSet.PageSize = int_PageSize
RecCount = obj_RecordSet.RecordCount
PgCount = obj_RecordSet.PageCount
IF obj_RecordSet.Eof Then
Response.Write("<center><font stlye='font-size:14px;' color='#ff0000'>对不起,没有记录!</font></center>")
Else
'-----------处理ADO分页----------------------------
IF CurrentPage < 1 Then
CurrentPage = 1
Else
If CurrentPage>PgCount Then
CurrentPage = PgCount
End If
End IF
obj_RecordSet.absolutepage = CurrentPage

Response.Write("<table width=100% border='0' cellpadding='0' cellspacing='0' style='font-size:12px;'>")
'---------------翻页链接-----------------------------
Dim FirstLink,PrevLink,NextLink,LastLink '定义向上和向下翻的变量
'-----------------------首页-------------------------
if CurrentPage>1 then
FirstLink = "<a href='" & URL & PageParam & "1'>首页</a>"
PrevLink = "<a href='" & URL & PageParam & Cstr(CurrentPage-1) & "'>上一页</a>"
else
FirstLink = "首页"
PrevLink = "上一页"
end if
'------------下一页----------------
if CurrentPage<PgCount then
NextLink = "<a href='" & URL & PageParam & Cstr(CurrentPage+1) & "'>下一页</a>"
LastLink = "<a href='" & URL & PageParam & PgCount & "'>尾页</a>"
else
NextLink = "下一页"
LastLink = "尾页"
end if
PageInfomation = FirstLink & Seperator & PrevLink & Seperator & NextLink & Seperator & LastLink & Seperator & "每页" & Cstr(int_PageSize) & "条记录" & Seperator & "共" & PgCount & "页" & Seperator & "目前第" & CurrentPage & "页" & Seperator
Response.Write("<tr><td align=center>")
Response.Write("<table width='100%' border='1' cellpadding='2' cellspacing='2' bordercolor='#999999'>")
'---------------设置表头-----------------
Response.Write("<tr bgcolor='" & str_TitleColor & "'>")
Dim i
For i=0 to FieldCount -1
Response.Write("<td align='center' width='" & Arr_FieldWidth(i) & "'><font style='font-size:14px;'><b>" & Arr_FieldName(i) & "</b></font></td>")
Next
Response.Write("</tr>")
'---------------------输出内容---------------------------------
i=0
While (not obj_RecordSet.EOF) and i<int_PageSize
Dim Cursor
Response.Write("<tr>")
For Cursor = 0 to FieldCount -1
Response.Write("<td align='center'>" & obj_RecordSet(Arr_Field(Cursor)) & "</td>")
Next
Response.Write("</tr>")
i=i+1
obj_RecordSet.MoveNext
Wend
'------------------------输出分页条------------------------------------
Response.Write("<tr><td align='right' colspan='" & Cstr(FieldCount) & "'>" & PageInfomation & "</td></tr>")
response.Write("</table></td></tr></table>")
End IF
End Sub
'----------检查参数是否正确---------------
Private Sub Check()
if Ubound(Arr_Field)<>Ubound(Arr_FieldName) then
str_Error="Fields数组和FieldName数组维数必须相同"
end if
if obj_RecordSet=empty then
str_Error="数据源不能为空,请设置dataSource属性"
end if
if int_PageSize="" then
str_Error="数据源不能为空"
end if
ShowLastError
End Sub
End Class


%>
分享到:
评论

相关推荐

    php封装的page分页类.zip

    这个"Page"分页类的实现可能包括以下几个核心组件: 1. **初始化**:类的构造函数接收必要的参数,如总记录数、每页显示的条目数、当前页数等,用于计算总的页数和其他相关属性。 2. **计算总页数**:根据总记录数...

    一个很好的分页类php分页类

    2. **实例化分页类**:将查询结果总数和每页记录数传递给分页类。 3. **设置当前页**:根据URL或请求参数设定当前页码。 4. **获取分页数据**:调用分页类的方法获取当前页的数据。 5. **渲染页面**:根据获取的...

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

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

    java分页大全 包括最强大的java分页类

    强大的分页类通常会考虑更多的实际需求,比如排序、过滤条件、统计信息等,并且可能具有高度可配置性,以适应不同的项目需求。 最后,"分页.rar"可能包含的是一个独立的分页解决方案,可能具有特定的优化或特性。...

    asp.net 分页类

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

    分页 jsp 分页类 java

    首先,我们需要创建一个分页类,这个类将包含关于分页的基本信息,如当前页、总页数、每页显示的记录数以及总记录数等。以下是一个简单的分页类的示例: ```java public class Pagination { private int current...

    常用类 数据库连接类 分页类

    一个分页类通常包含获取总记录数、设置每页显示条数、计算总页数、生成分页链接等功能。例如,可以设计一个简单的分页类: ```php class Pagination { private $total_rows; private $per_page; private $...

    高效asp分页类,带例子

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

    PHP超强分页类

    ### PHP超强分页类知识点详解 #### 一、概述 “PHP超强分页类”是一款专为PHP开发人员设计的强大工具,旨在简化分页逻辑,提高网页应用的用户体验。该类支持多种显示模式,能够适应不同的场景需求,并且兼容PHP4和...

    php分页类(通用)

    - **属性**:分页类通常会包含一些属性,如当前页码(currentPage)、每页显示条数(perPage)、总记录数(totalRows)以及总页数(totalPages)等。 - **方法**:分页类的方法包括设置和获取属性值,计算总页数,...

    简单PHP分页类的实现(内含测试数据库及数据库操作类)

    下面将详细介绍分页类的工作原理、如何使用以及相关数据库操作。 首先,PHP分页类的核心功能是计算总页数、生成链接和获取每页的数据。它通常包括以下主要部分: 1. 计算总页数:根据查询语句获取所有记录的数量,...

    PHP万能分页类,多种样式

    `说明.txt`是关键的文档,它应该包含了详细的使用指南,包括如何引入分页类、如何配置参数、如何调整样式以及可能出现的问题和解决方案。开发者应仔细阅读这份文档,以便正确地集成和使用这个分页类。 总的来说,这...

    asp分页类,很详细,很快

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

    asp静态生成 分页类

    在ASP(Active Server Pages)开发中,静态生成分页类是一种常见的优化技术,它能够提高网站性能,降低服务器负载,并且对于搜索引擎优化(SEO)也十分有利。ASP静态生成分页类主要是为了处理大量数据的展示,将动态...

    万能的php分页类实例代码

    以上代码示例中,`Pagination`就是我们的分页类,它封装了分页逻辑,使得在实际项目中应用分页变得简单易行。通过深入理解并定制此类,我们可以应对各种复杂的分页需求,如自定义URL结构、添加翻页动画、支持无限...

    叶子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 ...

    php分页类,功能很强大,直接调用类中的函数就可以

    2. **实例化分页类**:创建一个分页类的对象,传入必要的参数,如总记录数、每页显示的条目数等。 ```php $total_records = count($all_data); // 假设$all_data是所有数据 $per_page = 20; // 每页显示20条数据 $...

    基于Servlet的抽象分页类

    "基于Servlet的抽象分页类"通常是指一个设计用于协助在Web应用中实现数据分页功能的类。分页是大型数据集展示时必要的功能,它帮助用户更有效地浏览和管理大量的信息,而无需一次性加载所有数据,提高了用户体验和...

    asp.net 通用分页类

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

    php智能分页类让你能快速的去设置页面的分页

    描述中提到“无需调试,没有繁琐的页面样式设置”,这表明这个分页类已经考虑到了易用性和灵活性。它可能包含了内置的样式,可以直接嵌入到现有的页面布局中,同时也可能允许自定义样式,以适应各种前端框架。 接...

Global site tag (gtag.js) - Google Analytics