手机
当前位置:查字典教程网 >编程开发 >ASP教程 >超级ASP大分页_我的类容我做主
超级ASP大分页_我的类容我做主
摘要:超级ASP大分页_我的类容我做主选择自AppleBBS的Blog关键字超级ASP大分页_我的类容我做主出处Int_TotalPageThen...

超级ASP大分页_我的类容我做主选择自AppleBBS的Blog

关键字超级ASP大分页_我的类容我做主

出处

<%

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

'ShowMorePageASP版本

'VersionHuangJM1.00

'Codebymaomao

'CreateDate2004-09-28

'QQ:5144707

'http://blog.csdn.net/maomaoysq

'Writeformylover:HuangJM'本程序可以免费使用、修改,但请保留以上信息

'

'function

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

'支持URL多个参数:http://www.***.com/***.asp?aa=1&page=9&bb=2

'

'

'Paramers:

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

'GetCurPageNum返回当前页的记录集数目此属性只读

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

'GetConn得到数据库连接

'GetSQL得到查询语句

'InterfaceofClass

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

'

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

'创建对象

'SethjmPage=newShowMorePage

'得到数据库连接

'hjmPage.getconn=conn

'sql语句

'hjmPage.getsql="select*fromshop_bookswherenewsbook=1orderbybookiddesc"

'设置每一页的记录条数据为20条,默认显示10条

'hjmPage.pagesize=20

'显示分页信息,可在任意位置调用,可以调用多次

'hjmPage.showpage()

'setrs=hjmPage.getrs()'返回Recordset

'显示数据开始

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

'fori=1tohjmPage.GetCurPageNum'当前页的记录数目

'response.writeleft(trim(rs("bookname")),13)&"...."

'rs.movenext

'next

'显示数据结束

'sethjmPage=nothing

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

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

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

ClassShowMorePage

PrivateObj_Conn,Obj_Rs,Str_Sql,int_PageSize,Str_Errors,Int_CurPage,Str_URL,Int_TotalPage,Int_TotalRecord

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

'PageSize属性

'设置每一页的分页大小

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

PublicPropertyLetPageSize(intvalue)

IfIsNumeric(intvalue)Then

int_PageSize=CLng(intvalue)

Else

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

ShowError()

EndIf

EndProperty

PublicPropertyGetPageSize

Ifint_PageSize=""or(not(IsNumeric(int_PageSize)))Then

PageSize=10

Else

PageSize=int_PageSize

EndIf

EndProperty

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

'GetRS属性

'返回分页后的记录集

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

PublicPropertyGetGetRs()

ifInt_TotalRecord=0thenCallGetPage()

Ifnot(Obj_Rs.eofandObj_Rs.BOF)Then

ifInt_CurPage<>1then

ifInt_CurPage-1<Int_TotalPagethen

Obj_Rs.move(Int_CurPage-1)*PageSize

dimbookmark

bookmark=Obj_Rs.bookmark

else

Int_CurPage=1

endif

endif

EndIf

SetGetRs=Obj_Rs

EndProperty

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

'GetCurPageNum属性

'返回当前页的记录集数目

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

PublicPropertyGetGetCurPageNum()

dimint_PageNum

int_PageNum=int_PageSize

ifInt_TotalRecord=0thenCallGetPage()

IfInt_CurPage>Int_TotalPageThen

Int_CurPage=Int_TotalPage

int_PageNum=Int_TotalRecord-(Int_TotalPage-1)*int_PageSize

ElseIfInt_CurPage=Int_TotalPageThen

int_PageNum=Int_TotalRecord-(Int_TotalPage-1)*int_PageSize

EndIf

GetCurPageNum=int_PageNum

EndProperty

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

'GetConn得到数据库连接

'

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

PublicPropertyLetGetConn(sconn)

SetObj_Conn=sconn

EndProperty

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

'GetSQL得到查询语句

'

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

PublicPropertyLetGetSQL(svalue)

Str_Sql=svalue

EndProperty

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

'Class_Initialize类的初始化

'初始化当前页的值

'

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

PrivateSubClass_Initialize

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

'设定一些参数的黙认值

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

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

Int_TotalRecord=0

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

'获取当前面的值

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

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

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

'openRS打开数据集

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

'

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

PrivateSubopenRS()

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

Obj_Rs.OpenStr_Sql,Obj_Conn,1,1

EndSub

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

'getPage创建分页导航条

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

'

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

PrivateSubGetPage()

IfTypeName(Obj_Rs)<>"Object"ThenCallopenRS()

Int_TotalRecord=Obj_Rs.RecordCount

IfInt_TotalRecord<=0Then

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

CallShowError()

EndIf

IfInt_TotalRecordmodPageSize=0Then

Int_TotalPage=Int_TotalRecordint_PageSize

Else

Int_TotalPage=Int_TotalRecordint_PageSize+1

EndIf

IfInt_CurPage>Int_TotalPageThen

Int_CurPage=Int_TotalPage

EndIf

EndSub

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

'ShowPage创建分页导航条

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

'

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

PublicSubShowPage()

Dimstr_tmp

Str_URL=GetUrl()

ifInt_TotalRecord=0thenCallGetPage()

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

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

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

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="""&Str_URL&"1"&""">"&Btn_First&"</a><ahref="""&Str_URL&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="""&Str_URL&CStr(int_nextpage)&""">"&Btn_Next&"</a><ahref="""&Str_URL&CStr(Int_TotalPage)&""">"&Btn_Last&"</a>"

EndIf

ShowNextLast=str_tmp

Endfunction

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

'ShowNumBtn数字导航

'每次显示10页

'

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

PrivatefunctionshowNumBtn()

Dimi,str_tmp,m,n

m=Int_CurPage-4

n=Int_TotalPage

ifn>1then

fori=1to10

ifm<1thenm=1

ifm>nthen

exitfor

endif

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

m=m+1

next

endif

showNumBtn=str_tmp

Endfunction

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

'ShowPageInfo分页信息

'更据要求自行修改

'

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

PrivatefunctionShowPageInfo()

Dimstr_tmp

str_tmp="页次:"&Int_CurPage&"/"&Int_TotalPage&"页共"&Int_TotalRecord&"条记录"&int_PageSize&"条/每页"

ShowPageInfo=str_tmp

Endfunction

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

'GetURL得到当前的URL

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

'

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

PrivatefunctionGetURL()

DimstrUrl,tmp_URL,i,j,search_str,result_url

search_str="page="

strUrl=Request.Servervariables("URL")

strUrl=split(strUrl,"/")

i=UBound(strUrl,1)

tmp_URL=strUrl(i)'得到当前页文件名

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

Ifstr_params=""Then

result_url=tmp_URL&"?page="

Else

IfInstrRev(str_params,search_str)=0Then

result_url=tmp_URL&"?"&str_params&"&page="

Else

j=InstrRev(str_params,search_str)-2

Ifj=-1Then

result_url=tmp_URL&"?page="

Else

str_lparams=Left(str_params,j)

str_rparams=right(str_params,len(str_params)-j-1)

ifInStr(str_rparams,"&")<>0then

str_rparams=right(str_rparams,len(str_rparams)-InStr(str_rparams,"&")+1)

else

str_rparams=""

endif

result_url=tmp_URL&"?"&str_lparams&str_rparams&"&page="

EndIf

EndIf

EndIf

GetURL=result_url

Endfunction

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

'设置Terminate事件。

'

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

PrivateSubClass_Terminate

Obj_Rs.close

SetObj_Rs=nothing

Obj_Conn.close

setObj_Conn=nothing

EndSub

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

'ShowError错误提示

'

'

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

PrivateSubShowError()

IfStr_Errors<>""Then

Response.Write(""&Str_Errors&"")

Response.End

EndIf

EndSub

Endclass

%>

<>

<%

dimconn

calldbconnect()

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

'创建对象

SethjmPage=newShowMorePage

'得到数据库连接

hjmPage.getconn=conn

'sql语句

hjmPage.getsql="selectTop6*fromshop_bookswherenewsbook=1orderbybookiddesc"

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

hjmPage.pagesize=2

setrs=hjmPage.getrs()'返回Recordset

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

hjmPage.showpage()

'显示数据

Response.Write("<br/>")

fori=1tohjmPage.GetCurPageNum'当前页的记录数目

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

%>

【超级ASP大分页_我的类容我做主】相关文章:

用ASP实现hashMap功能的类

分页类,异常类

用ASP读取XML文件的具体方法与示例

ASP常用的函数

ASP开发网页牢记注意事项

分页代码

使用ASP获得服务器网卡的MAC地址信息

收集整理的ASP的常用内置函数

ASP中取得图片宽度和高度的类(无组件)

收藏的ASP常用的函数集

精品推荐
分类导航