asp分页程序类介绍
XDownPage2.10是在2.0的基础上增加了sqlserver的分页支持。它依然支持oracle数据库。由于access与oracle很相似。所以也能很好的兼容access数据库。
'=====================================================================
'XDOWNPAGEASP版本
'版本1.00
'Codebyzykj2000
'Email:zykj_2000@163.net
'BBS:http://bbs.513soft.net
'本程序可以免费使用、修改,希望我的程序能为您的工作带来方便
'但请保留以上请息
'
'
'升级版本:2.10
'Updatedbydoublel,northsnow
'email:northsnow@163.com
'
'blog:http://blog.csdn.net/precipitant
'blog:http://blog.csdn.net/doublel
'升级说明:
'1,数据查询时只查询当前页所包含的记录,大大降低了数据传输量
'2,如果正常的页导航,不用每次都查询总记录数,只要第一次查询后,后来通过参数传递即可
'3,支持动态更改页大小
'4,支持动态排序
'5,本程序支持oracle和sqlserver,以前发了一个oracle版(2.0),也有例子,如果只是在oracle上面用,还是用2.0好.
'如果今天的是在原来的基础上增加了对sqlserver的支持。由于sqlserver与
'oracle还是有区别的.所以大家如果想知道如何在sqlserver如何用,请查阅例子程序
'
'程序特点
'本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义,
'支持URL多个参数
'
'使用说明
'程序参数说明
'PapgeSize定义分页每一页的记录数
'GetRS返回经过分页的Recordset此属性只读
'GetConn得到数据库连接
'GetSQL得到查询语句
'totalRecordCount传递总记录数
'程序方法说明
'ShowPage显示分页导航条,唯一的公用方法
'ShowPageSizeChange()显示改变页大小的列表
'
'例一:(oracle)
'
''包含文件
'
'Setmypage=newxdownpage'创建对象
'mypage.getconn=conn'得到数据库连接
'mypage.getsql="select*fromproductinfoorderbyidasc"
'mypage.pagesize=5'设置每一页的记录条数据为5条
'mypage.totalRecordCount=rsTotalCount设置总记录数
'setrs=mypage.getrs()'返回Recordset
'mypage.GetSubmitForm="frmQuery"'分页默认提交的表单,currentpage参数
'Response.write(mypage.GetSubmitForm1())'输出分页提交的函数
'mypage.showpage()'显示分页信息,这个方法可以,在setrs=mypage.getrs()以后
'任意位置调用,可以调用多次
'dowhilenotrs.eof'接下来的操作就和操作一个普通Recordset对象一样操作
'response.writers(0)&"
'"'这里就可以自定义显示方式了
'rs.movenext
'loop
'
'添加了保存当前页面数量的提交脚本
'函数为GetSubmitForm()
'需要提交给函数GetSubmitForm一个表单名字
'在这个提交的表单里面保存变量flag,currentpage,pagesize,rsTotalCount四个参数
'例子如下
'flag=request("flag")
'currentpage=request("currentpage")
'currentpage=request("pagesize")
'currentpage=request("rsTotalCount")
'在提交的表单里面加入下面四个input
'<inputname="flag"type="hidden"value="<%=flag%>">
'<inputname="currentpage"type="hidden"value="<%=currentpage%>">
'<inputname="pagesize"type="hidden"value="<%=pagesize%>">
'<inputname="rsTotalCount"type="hidden"value="<%=rsTotalCount%>">
'=====================================================================
'例二(sqlserver)
'与oracle大致上相似,但是也有比较不同之处.那就是sqlserver不是将一个生成的完整的sql语句传给分页对象,而是执行
'CreateSql_MSSQL方法创建.
'Setmypage=newxdownpage'创建分页类对象
'mypage.getconn=conn'得到数据库连接
'mypage.pagesize=pagesize'设置每一页的记录条数据为5条
'mypage.totalRecordCount=rsTotalCount'传递总记录数,分页的时候不用每次都去查一次
'创建查询语句(这个是sqlserver与oracle特别的地方
'参数讲解:表或视图,查询的列的列表,条件串,排序串,关键字字段
'mypage.CreateSql_MSSQL"err_type","*",strOption,strOrder,"err_type_code"'******************************
'生成分页和导航表单
'mypage.GetSubmitForm="frmHidden"
'Response.write(mypage.GetSubmitForm1())
'执行查询并返回结果
'setrs=mypage.getrs()'返回Recordset
ConstBtn_First="<fontface=""webdings"">9</font>"'定义第一页按钮显示样式
ConstBtn_Prev="<fontface=""webdings"">3</font>"'定义前一页按钮显示样式
ConstBtn_Next="<fontface=""webdings"">4</font>"'定义下一页按钮显示样式
ConstBtn_Last="<fontface=""webdings"">:</font>"'定义最后一页按钮显示样式
ConstXD_Align="center"'定义分页信息对齐方式
ConstXD_Width="100%"'定义分页信息框大小
ConstXD_Height="20"
ClassXdownpage'类从这里开始
'变量定义
publicint_totalPage'总页数
publicint_curcount'当前页的记录数
publicXD_PageSize'页大小
Privateint_curpage'当前页号
Privateint_totalRecord'总记录数
PrivateXD_Conn'数据库连接对象
PrivateXD_Rs'记录集对象
PrivateXD_SQL'主sql语句
PrivateXD_Count_SQL'查询总记录数的sql语句
PrivateStr_errors
Privatestr_URL
PrivateXD_sURL
PrivateSubmitForm'所需的查询表单名字(隐藏表单名字)
PrivateXD_TableName'表名
PrivateXD_FieldList'字段列表
PrivateXD_Option'查询条件
PrivateXD_PK'一个主关键字字段名
PrivateXD_Order'排序串
'=================================================================
'PageSize属性
'设置每一页的分页大小
'=================================================================
PublicPropertyLetPageSize(int_PageSize)
IfIsNumeric(Int_Pagesize)Then
ifclng(Int_Pagesize)>0then
XD_PageSize=CLng(int_PageSize)
else
XD_PageSize=10
endif
Else
XD_PageSize=10
EndIf
EndProperty
PublicPropertyGetPageSize
IfXD_PageSize=""or(not(IsNumeric(XD_PageSize)))Then
PageSize=10
Else
PageSize=XD_PageSize
EndIf
EndProperty
'=================================================================
'aTableName属性
'查询的表名,用于自动构造语句
'=================================================================
PublicPropertyLetaTableName(str_TableName)
XD_TableName=str_TableName
EndProperty
PublicPropertyGetaTableName
aTableName=XD_TableName
EndProperty
'=================================================================
'aFieldList属性
'查询的字段列表,用于自动构造语句
'=================================================================
PublicPropertyLetaFieldList(str_FieldList)
XD_FieldList=str_FieldList
EndProperty
PublicPropertyGetaFieldList
aFieldList=XD_FieldList
EndProperty
'=================================================================
'aOption属性
'查询的条件串,用于自动构造语句
'=================================================================
PublicPropertyLetaOption(str_Option)
XD_Option=str_Option
EndProperty
PublicPropertyGetaOption
aOption=XD_Option
EndProperty
'=================================================================
'aPK属性
'查询时可用的可唯一表示一条记录的字段,用于自动构造语句
'=================================================================
PublicPropertyLetaPK(str_PK)
XD_PK=str_PK
EndProperty
PublicPropertyGetaPK
aPK=XD_PK
EndProperty
'=================================================================
'aOrder属性
'查询的排序串,用于自动构造语句
'=================================================================
PublicPropertyLetaOrder(str_Ordert)
XD_Order=str_Order
EndProperty
PublicPropertyGetaOrder
aOrder=XD_Order
EndProperty
'=================================================================
'GetRS属性
'返回分页后的记录集
'=================================================================
PublicPropertyGetGetRs()
SetXD_Rs=Server.createobject("adodb.recordset")
'XD_Rs.PageSize=PageSize
XD_Rs.CursorLocation=3
'response.WriteXD_SQL
XD_Rs.OpenXD_SQL,XD_Conn,3,1
int_curcount=XD_Rs.RecordCount
'规范化int_totalRecord的值
ifint_totalRecord=""ornotisNumeric(int_totalRecord)thenint_totalRecord=0
ifint_totalRecord=
'XDOWNPAGEASP版本
'版本1.00
'Codebyzykj2000
'Email:zykj_2000@163.net
'BBS:http://bbs.513soft.net
'本程序可以免费使用、修改,希望我的程序能为您的工作带来方便
'但请保留以上请息
'
'
'升级版本:2.10
'Updatedbydoublel,northsnow
'email:northsnow@163.com
'
'blog:http://blog.csdn.net/precipitant
'blog:http://blog.csdn.net/doublel
'升级说明:
'1,数据查询时只查询当前页所包含的记录,大大降低了数据传输量
'2,如果正常的页导航,不用每次都查询总记录数,只要第一次查询后,后来通过参数传递即可
'3,支持动态更改页大小
'4,支持动态排序
'5,本程序支持oracle和sqlserver,以前发了一个oracle版(2.0),也有例子,如果只是在oracle上面用,还是用2.0好.
'如果今天的是在原来的基础上增加了对sqlserver的支持。由于sqlserver与
'oracle还是有区别的.所以大家如果想知道如何在sqlserver如何用,请查阅例子程序
'
'程序特点
'本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义,
'支持URL多个参数
'
'使用说明
'程序参数说明
'PapgeSize定义分页每一页的记录数
'GetRS返回经过分页的Recordset此属性只读
'GetConn得到数据库连接
'GetSQL得到查询语句
'totalRecordCount传递总记录数
'程序方法说明
'ShowPage显示分页导航条,唯一的公用方法
'ShowPageSizeChange()显示改变页大小的列表
'
'例一:(oracle)
'
''包含文件
'
'Setmypage=newxdownpage'创建对象
'mypage.getconn=conn'得到数据库连接
'mypage.getsql="select*fromproductinfoorderbyidasc"
'mypage.pagesize=5'设置每一页的记录条数据为5条
'mypage.totalRecordCount=rsTotalCount设置总记录数
'setrs=mypage.getrs()'返回Recordset
'mypage.GetSubmitForm="frmQuery"'分页默认提交的表单,currentpage参数
'Response.write(mypage.GetSubmitForm1())'输出分页提交的函数
'mypage.showpage()'显示分页信息,这个方法可以,在setrs=mypage.getrs()以后
'任意位置调用,可以调用多次
'dowhilenotrs.eof'接下来的操作就和操作一个普通Recordset对象一样操作
'response.writers(0)&"
'"'这里就可以自定义显示方式了
'rs.movenext
'loop
'
'添加了保存当前页面数量的提交脚本
'函数为GetSubmitForm()
'需要提交给函数GetSubmitForm一个表单名字
'在这个提交的表单里面保存变量flag,currentpage,pagesize,rsTotalCount四个参数
'例子如下
'flag=request("flag")
'currentpage=request("currentpage")
'currentpage=request("pagesize")
'currentpage=request("rsTotalCount")
'在提交的表单里面加入下面四个input
'<inputname="flag"type="hidden"value="<%=flag%>">
'<inputname="currentpage"type="hidden"value="<%=currentpage%>">
'<inputname="pagesize"type="hidden"value="<%=pagesize%>">
'<inputname="rsTotalCount"type="hidden"value="<%=rsTotalCount%>">
'=====================================================================
'例二(sqlserver)
'与oracle大致上相似,但是也有比较不同之处.那就是sqlserver不是将一个生成的完整的sql语句传给分页对象,而是执行
'CreateSql_MSSQL方法创建.
'Setmypage=newxdownpage'创建分页类对象
'mypage.getconn=conn'得到数据库连接
'mypage.pagesize=pagesize'设置每一页的记录条数据为5条
'mypage.totalRecordCount=rsTotalCount'传递总记录数,分页的时候不用每次都去查一次
'创建查询语句(这个是sqlserver与oracle特别的地方
'参数讲解:表或视图,查询的列的列表,条件串,排序串,关键字字段
'mypage.CreateSql_MSSQL"err_type","*",strOption,strOrder,"err_type_code"'******************************
'生成分页和导航表单
'mypage.GetSubmitForm="frmHidden"
'Response.write(mypage.GetSubmitForm1())
'执行查询并返回结果
'setrs=mypage.getrs()'返回Recordset
ConstBtn_First="<fontface=""webdings"">9</font>"'定义第一页按钮显示样式
ConstBtn_Prev="<fontface=""webdings"">3</font>"'定义前一页按钮显示样式
ConstBtn_Next="<fontface=""webdings"">4</font>"'定义下一页按钮显示样式
ConstBtn_Last="<fontface=""webdings"">:</font>"'定义最后一页按钮显示样式
ConstXD_Align="center"'定义分页信息对齐方式
ConstXD_Width="100%"'定义分页信息框大小
ConstXD_Height="20"
ClassXdownpage'类从这里开始
'变量定义
publicint_totalPage'总页数
publicint_curcount'当前页的记录数
publicXD_PageSize'页大小
Privateint_curpage'当前页号
Privateint_totalRecord'总记录数
PrivateXD_Conn'数据库连接对象
PrivateXD_Rs'记录集对象
PrivateXD_SQL'主sql语句
PrivateXD_Count_SQL'查询总记录数的sql语句
PrivateStr_errors
Privatestr_URL
PrivateXD_sURL
PrivateSubmitForm'所需的查询表单名字(隐藏表单名字)
PrivateXD_TableName'表名
PrivateXD_FieldList'字段列表
PrivateXD_Option'查询条件
PrivateXD_PK'一个主关键字字段名
PrivateXD_Order'排序串
'=================================================================
'PageSize属性
'设置每一页的分页大小
'=================================================================
PublicPropertyLetPageSize(int_PageSize)
IfIsNumeric(Int_Pagesize)Then
ifclng(Int_Pagesize)>0then
XD_PageSize=CLng(int_PageSize)
else
XD_PageSize=10
endif
Else
XD_PageSize=10
EndIf
EndProperty
PublicPropertyGetPageSize
IfXD_PageSize=""or(not(IsNumeric(XD_PageSize)))Then
PageSize=10
Else
PageSize=XD_PageSize
EndIf
EndProperty
'=================================================================
'aTableName属性
'查询的表名,用于自动构造语句
'=================================================================
PublicPropertyLetaTableName(str_TableName)
XD_TableName=str_TableName
EndProperty
PublicPropertyGetaTableName
aTableName=XD_TableName
EndProperty
'=================================================================
'aFieldList属性
'查询的字段列表,用于自动构造语句
'=================================================================
PublicPropertyLetaFieldList(str_FieldList)
XD_FieldList=str_FieldList
EndProperty
PublicPropertyGetaFieldList
aFieldList=XD_FieldList
EndProperty
'=================================================================
'aOption属性
'查询的条件串,用于自动构造语句
'=================================================================
PublicPropertyLetaOption(str_Option)
XD_Option=str_Option
EndProperty
PublicPropertyGetaOption
aOption=XD_Option
EndProperty
'=================================================================
'aPK属性
'查询时可用的可唯一表示一条记录的字段,用于自动构造语句
'=================================================================
PublicPropertyLetaPK(str_PK)
XD_PK=str_PK
EndProperty
PublicPropertyGetaPK
aPK=XD_PK
EndProperty
'=================================================================
'aOrder属性
'查询的排序串,用于自动构造语句
'=================================================================
PublicPropertyLetaOrder(str_Ordert)
XD_Order=str_Order
EndProperty
PublicPropertyGetaOrder
aOrder=XD_Order
EndProperty
'=================================================================
'GetRS属性
'返回分页后的记录集
'=================================================================
PublicPropertyGetGetRs()
SetXD_Rs=Server.createobject("adodb.recordset")
'XD_Rs.PageSize=PageSize
XD_Rs.CursorLocation=3
'response.WriteXD_SQL
XD_Rs.OpenXD_SQL,XD_Conn,3,1
int_curcount=XD_Rs.RecordCount
'规范化int_totalRecord的值
ifint_totalRecord=""ornotisNumeric(int_totalRecord)thenint_totalRecord=0
ifint_totalRecord=
本文地址:http://www.45fan.com/dnjc/70840.html