(原创)
通用数据分页类
一般的分页类,分页后显示数据时比较容易。这种直接调用,所有的数据,然后执行都可以做到当前页面。
这样的工作是只获取当前页面、总页数和总记录数等数据。

ASP代码:
<
类************************** ' / *****************************分页显示
作者:{ * }华鱼
日期:2004年11月18日
:获取一页数据并返回到外部
插图:
/ *昏暗的天气=新pageclass
/ * myPage。conn =连接设置连接对象
/ * myPage。PageSize = 20设置页面显示多少数据(默认为10)
页码的 / *设置为显示当前的天气。curpage = 2
/ * ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
/ * myPage。TableName =成员设置表名称
/ * myPage。字段=ID的成员名,memberpass '设置显示字段列表
/ * myPage。条件=ID > 100 设置查询条件
/ * myPage。orderby =ID号的设置排序(一定要设置的属性)
/ *设置寻呼机=第二页mypage.execute返回数据(记录集),或没有在一个误差值的情况下
/ * ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
上述定义的 / *还使用以下方法:ExecuteBy(表
/ *设置寻呼机= MyPage.ExecuteBy(成员
/ * ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
/ *总页数= mypage.pagecount回报总页数
/ * RecordCount = mypage.recordcount返回记录总数
/ *号= mypage.nextpage返回页下一页
页码的 / *调入= mypage.prepage返回上一页。
/ *****************************************************************
类pageclass
私人连接连接到数据库的外部连接对象
私人RS
私人list_fields
私人table_name
私人query_where
私人orderby_sql字段排序语句部分
私人page_count返回当前查询的总记录数
私人page_size '设置页面显示多少项
私人cur_page '设置当前页号
私人record_count返回当前查询的总记录数

Set the Connection object ****************************'/****************
公共财产让康恩(ByRef ObjConn)
设置连接objconn
最后的财产
公共财产得到CONN()
设置conn =连接
最后的财产
/ ****************端******************************************

/ ****************查询的SQL语句的应用
查询显示字段
公共财产让领域(ByVal值)
list_fields =价值
最后的财产
公共属性获取字段()
list_fields领域=
最后的财产
查询表名称
公共财产让tablename(ByVal值)
table_name =价值
最后的财产
公共财产得到的是()
table_name TableName =
最后的财产
查询条件
公共财产让条件(ByVal值)
query_where =价值
最后的财产
公共财产获取条件()
query_where条件=
最后的财产
*****************排序部分********************************************
币值没有写顺序。例如,{物}。orderby =ID号,posttime ASC
公共财产让OrderBy(ByVal值)
orderby_sql =价值
最后的财产
公共财产得到OrderBy()
orderby_sql orderby =
最后的财产
/ ****************端******************************************

/ ****************返回页面***********************总数目前的结果
公共财产得到总页数()
总页数= page_count
最后的财产
公共财产得到RecordCount()
record_count RecordCount =
最后的财产
公共财产得到:()
如果cur_page < page_count然后
到cur_page + 1 =
其他的
做为page_count
最后如果
最后的财产
公共财产被调入()
如果cur_page > 1
cur_page-1调入=
其他的
cur_page调入=
最后如果
最后的财产
/ ****************端******************************************

/ ****************设置页面显示的记录数***************************
公共财产让PageSize(ByVal值)
如果Not IsNumeric(值)或价值= 然后
价值= 10
其他的
价值= Cint(价值)
最后如果
如果值< 1,那么值= 10
page_size =价值
最后的财产
公共财产被PageSize()
PageSize = page_size
最后的财产
集数**************************当前数
公共财产让页面(ByVal值)
如果Not IsNumeric(值)或价值= 然后
价值= 1
其他的
价值= CLNG(价值)
最后如果
如果值< 1,那么值= 1
cur_page =价值
最后的财产
公共属性获取页()
页= cur_page
最后的财产
/ ****************端******************************************

私有子class_initialize
记录集对象的初始化
page_size = 10的默认页10数据
curpage = 1的默认值是当前的第一页
record_count = 0
page_count = 0
端子

私有子class_terminate
电话closerecordset
端子

关闭连接的***数据库
私人Sub CloseRecordSet
下次继续出错
如果IsObject(RS)然后
关闭
设置=无
最后如果
关于错误0
端子

/ **********查询返回相应的页面数据***********************************************
公共函数ExecuteBy(ByVal otablename,ByVal ofields,ByVal ocondition,ByVal oOrderBy)
table_name = otablename
list_fields = ofields
query_where = ocondtion
orderby_sql = oorderby
集executeby =执行()
端功能
查询并返回当前curpage页记录
公共函数执行()
电话closerecordset
下次继续出错
昏暗的TSQL,TopMod,其中
如果Not IsObject(连接)或table_name = 或然后orderby_sql =
设置执行=无
record_count = 0
page_count = 0
退出功能
最后如果
如果修剪(query_where)<>然后
其中,哪里query_where
其他的
其中=
最后如果
TSQL =select count(*)从{table_name}其中
record_count = connection.execute(TSQL)(0)得到总记录数
如果犯错,然后
呃。清晰
设置执行=无
record_count = 0
page_count = 0
退出功能
最后如果
如果record_count<1
设置执行=无
record_count = 0
page_count = 0
退出功能
最后如果
页面总数
如果record_count MOD page_size <> 0
topmod = record_count MOD page_size
page_count =固定(record_count / page_size)+ 1
如果cur_page < page_count然后
topmod = page_size
最后如果
其他的
topmod = page_size
page_count =固定(record_count / page_size)
最后如果
如果cur_page > page_count然后cur_page = page_count
If Cur_Page<1 Then Cur_Page=1
如果修剪(list_fields)= 然后list_fields =*
TSQL =SELECT * FROM(选择顶部的topmod *(选择顶(cur_page * page_size)list_fields
集= connection.execute(TSQL)
如果犯错,然后
呃。清晰
设置执行=无
record_count = 0
page_count = 0
退出功能
最后如果
设置执行= RS
端功能

为了ASC -> DESC DESC -> ASC将订货
私有函数transformorder(ByVal值)
如果值然后
transformorder =
退出功能
最后如果
昏暗的orderarray,我,结果,ByString,田野,InPos
orderarray =分裂(价值,
我= 0,UBound(orderarray)
如果OrderArray(我)< >然后
到位信号= instrrev(TRIM(orderarray(我)),)发现的顺序
如果InPos<1然后如果你不能找到它,它是升序排序
bystring =ASC
字段= orderarray(我)+
其他的
bystring =装饰(MID(orderarray(我),到位信号+ 1))
字段=左(OrderArray(我)、InPos)
如果ByString <> 然后
bystring = UCase(bystring)
其他的
bystring =ASC
最后如果
最后如果
转换排序
如果bystring =ASC然后
bystring =降序
其他的
bystring =ASC
最后如果
结果=结果+领域bystring + +
最后如果
下一个
如果结果,则结果=左(结果,莱恩(结果)- 1)
transformorder =结果
端功能
类的结束


示例代码:
子show_list
昏暗的页面,传呼机
页=请求(页)
昏暗的天气
中国=新pageclass集
天气。conn = Conn
这为= 20。
这页页。
这是=表。
这场=*。
orderby =MyPage。ID ASC
集寻呼机= mypage.execute
寻呼机= MyPage.ExecuteBy(表
如果传呼机是什么然后退出
直到EOF做传呼机。
响应。写
响应。写(本我寻呼机)
响应。写寻呼机(AAAA)
响应。写寻呼机(BBBB )
响应。写寻呼机(中交)
响应。写
pagers.movenext
环
关闭寻呼机。
总页数= mypage.pagecount
页= mypage.page得到的页面数量正确
做为mypage.nextpage
mypage.prepage调入=
集寻呼机=没有
中国=没有设置
端子
show_list
%>