手机
当前位置:查字典教程网 >编程开发 >ASP教程 >XDOWNPAGE ASP版本 分页类
XDOWNPAGE ASP版本 分页类
摘要:

<%

'===================================================================

'XDOWNPAGEASP版本

'版本1.00

'Codebyzykj2000

'Email:zykj_2000@163.net

'BBS:http://bbs.513soft.net

'本程序可以免费使用、修改,希望我的程序能为您的工作带来方便

'但请保留以上请息

'

'程序特点

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

'支持URL多个参数

'

'使用说明

'程序参数说明

'PapgeSize定义分页每一页的记录数

'GetRS返回经过分页的Recordset此属性只读

'GetConn得到数据库连接

'GetSQL得到查询语句

'程序方法说明

'ShowPage显示分页导航条,唯一的公用方法

'

'===================================================================

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%"'定义分页信息框大小

ClassXdownpage

PrivateXD_PageCount,XD_Conn,XD_Rs,XD_SQL,XD_PageSize,Str_errors,int_curpage,str_URL,int_totalPage,int_totalRecord,XD_sURL

'=================================================================

'PageSize属性

'设置每一页的分页大小

'=================================================================

PublicPropertyLetPageSize(int_PageSize)

IfIsNumeric(Int_Pagesize)Then

XD_PageSize=CLng(int_PageSize)

Else

str_error=str_error&"PageSize的参数不正确"

ShowError()

EndIf

EndProperty

PublicPropertyGetPageSize

IfXD_PageSize=""or(not(IsNumeric(XD_PageSize)))Then

PageSize=10

Else

PageSize=XD_PageSize

EndIf

EndProperty

'=================================================================

'GetRS属性

'返回分页后的记录集

'=================================================================

PublicPropertyGetGetRs()

SetXD_Rs=Server.createobject("adodb.recordset")

XD_Rs.PageSize=PageSize

XD_Rs.OpenXD_SQL,XD_Conn,1,1

Ifnot(XD_Rs.eofandXD_RS.BOF)Then

Ifint_curpage>XD_RS.PageCountThen

int_curpage=XD_RS.PageCount

EndIf

XD_Rs.AbsolutePage=int_curpage

EndIf

SetGetRs=XD_RS

EndProperty

'================================================================

'GetConn得到数据库连接

'

'================================================================

PublicPropertyLetGetConn(obj_Conn)

SetXD_Conn=obj_Conn

EndProperty

'================================================================

'GetSQL得到查询语句

'

'================================================================

PublicPropertyLetGetSQL(str_sql)

XD_SQL=str_sql

EndProperty

'==================================================================

'Class_Initialize类的初始化

'初始化当前页的值

'

'==================================================================

PrivateSubClass_Initialize

'========================

'设定一些参数的黙认值

'========================

XD_PageSize=10'设定分页的默认值为10

'========================

'获取当前面的值

'========================

Ifrequest("page")=""Then

int_curpage=1

ElseIfnot(IsNumeric(request("page")))Then

int_curpage=1

ElseIfCInt(Trim(request("page")))<1Then

int_curpage=1

Else

Int_curpage=CInt(Trim(request("page")))

EndIf

EndSub

'====================================================================

'ShowPage创建分页导航条

'有首页、前一页、下一页、末页、还有数字导航

'

'====================================================================

PublicSubShowPage()

Dimstr_tmp

XD_sURL=GetUrl()

int_totalRecord=XD_RS.RecordCount

Ifint_totalRecord<=0Then

str_error=str_error&"总记录数为零,请输入数据"

CallShowError()

EndIf

Ifint_totalRecord=""then

int_TotalPage=1

Else

Ifint_totalRecordmodPageSize=0Then

int_TotalPage=CLng(int_TotalRecord/XD_PageSize*-1)*-1

Else

int_TotalPage=CLng(int_TotalRecord/XD_PageSize*-1)*-1+1

EndIf

EndIf

IfInt_curpage>int_TotalpageThen

int_curpage=int_TotalPage

EndIf

'==================================================================

'显示分页信息,各个模块根据自己要求更改显求位置

'==================================================================

response.write""

str_tmp=ShowFirstPrv

response.writestr_tmp

str_tmp=showNumBtn

response.writestr_tmp

str_tmp=ShowNextLast

response.writestr_tmp

str_tmp=ShowPageInfo

response.writestr_tmp

response.write""

EndSub

'====================================================================

'ShowFirstPrv显示首页、前一页

'

'

'====================================================================

PrivateFunctionShowFirstPrv()

DimStr_tmp,int_prvpage

Ifint_curpage=1Then

str_tmp=Btn_First&""&Btn_Prev

Else

int_prvpage=int_curpage-1

str_tmp="<ahref="""&XD_sURL&"1"&""">"&Btn_First&"</a><ahref="""&XD_sURL&CStr(int_prvpage)&""">"&Btn_Prev&"</a>"

EndIf

ShowFirstPrv=str_tmp

EndFunction

'====================================================================

'ShowNextLast下一页、末页

'

'

'====================================================================

PrivateFunctionShowNextLast()

Dimstr_tmp,int_Nextpage

IfInt_curpage>=int_totalpageThen

str_tmp=Btn_Next&""&Btn_Last

Else

Int_NextPage=int_curpage+1

str_tmp="<ahref="""&XD_sURL&CStr(int_nextpage)&""">"&Btn_Next&"</a><ahref="""&XD_sURL&CStr(int_totalpage)&""">"&Btn_Last&"</a>"

EndIf

ShowNextLast=str_tmp

EndFunction

'====================================================================

'ShowNumBtn数字导航

'

'

'====================================================================

PrivateFunctionshowNumBtn()

Dimi,str_tmp

Fori=1toint_totalpage

str_tmp=str_tmp&"[<ahref="""&XD_sURL&CStr(i)&""">"&i&"</a>]"

Next

showNumBtn=str_tmp

EndFunction

'====================================================================

'ShowPageInfo分页信息

'更据要求自行修改

'

'====================================================================

PrivateFunctionShowPageInfo()

Dimstr_tmp

str_tmp="页次:"&int_curpage&"/"&int_totalpage&"页共"&int_totalrecord&"条记录"&XD_PageSize&"条/每页"

ShowPageInfo=str_tmp

EndFunction

'==================================================================

'GetURL得到当前的URL

'更据URL参数不同,获取不同的结果

'

'==================================================================

PrivateFunctionGetURL()

Dimstrurl,str_url,i,j,search_str,result_url

search_str="page="

strurl=Request.ServerVariables("URL")

Strurl=split(strurl,"/")

i=UBound(strurl,1)

str_url=strurl(i)'得到当前页文件名

str_params=Trim(Request.ServerVariables("QUERY_STRING"))

Ifstr_params=""Then

result_url=str_url&"?page="

Else

IfInstrRev(str_params,search_str)=0Then

result_url=str_url&"?"&str_params&"&page="

Else

j=InstrRev(str_params,search_str)-2

Ifj=-1Then

result_url=str_url&"?page="

Else

str_params=Left(str_params,j)

result_url=str_url&"?"&str_params&"&page="

EndIf

EndIf

EndIf

GetURL=result_url

EndFunction

'====================================================================

'设置Terminate事件。

'

'====================================================================

PrivateSubClass_Terminate

XD_RS.close

SetXD_RS=nothing

EndSub

'====================================================================

'ShowError错误提示

'

'

'====================================================================

PrivateSubShowError()

Ifstr_Error<>""Then

Response.Write(""&str_Error&"")

Response.End

EndIf

EndSub

Endclass

'setconn=server.CreateObject("adodb.connection")

'conn.open"driver={microsoftaccessdriver(*.mdb)};dbq="&server.Mappath("/data/5iduohai.mdb")

'

''#############类调用样例#################

''创建对象

'Setmypage=newxdownpage

''得到数据库连接

'mypage.getconn=conn

''sql语句

'mypage.getsql="select*from[DH_Company]orderbyidasc"

''设置每一页的记录条数据为5条

'mypage.pagesize=5

''返回Recordset

'setrs=mypage.getrs()

'显示分页信息,这个方法可以,在setrs=mypage.getrs()以后,可在任意位置调用,可以调用多次

'

''显示数据

'Response.Write("<br/>")

'fori=1tomypage.pagesize

''这里就可以自定义显示方式了

'ifnotrs.eofthen

'response.writers(0)&"<br/>"

'rs.movenext

'else

'exitfor

'endif

'next

'mypage.showpage()

%>

【XDOWNPAGE ASP版本 分页类】相关文章:

记录集内随机取记录的代码

asp分页的一个类

分页代码

ASP高亮类

ASP通用模板类

ASP程序代码执行时间统计类

ASP脚本循环语句

ASP模板类代码

ASP无组件分页实现思路及代码

ASP中七种实现分页显示的方法

精品推荐
分类导航