|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。创立|分页转自“蓝色幻想” http://www.blueidea.com/tech/program/2004/1989.asp。ASP分页一向是一个众说纷坛的话题,并且也没有一个太无效的办法。明天在CSDN的BLOG里看到了这个ASP分页类,(http://blog.csdn.net/xiangbo520/archive/2004/09/22/113539.aspx),只是供应了源码,并且源码中部分标签已被作为HTML显现了,想复制上去也不太简单,一切到蓝色幻想找到了一篇周全一点的文章,便利本人和别人利用。以下是原文内容。
-----------------------------------------------
从入手下手进修到利用ASP到如今也写了很多程序了,最使人头痛的是写数据分页,每次都是因为几个变量名或几个参数的分歧,因此必要每次都写哪一段冗杂而又冗杂的分页代码,代码长了使得程序的可读性变差,简单出差,调试半天也找不堕落在那里,以是渐渐的我入手下手利用一些网上的供应的分页函数或分页类。切实其实费事很多,可是一般的函数和类的做法都是就数据显现部分也封装了起来,每次为了到达本人必要的显求效果要往修改函数大概类的自己,以是利用起来也不是怎样便利,本人写的分页改起来已够庞大了,更不要说他人的了。
以是趁今天有空本人写了一个分页的类,自我感到优秀(不要用鸡蛋砸我),在这里和人人分享一下本人的履历(谈不上履历,感受吧)。在这里我也不想说分页的道理了,归正人人都懂,要我往深切的谈我也不会。呵呵。
1、创立分页类的方针
在写之前,我曾想过,我事实要写怎样一个类,回忆起之前写分页历程的时分,最烦的莫过于每次都要写哪一段庞大的分页代码,最年夜的懊恼每次都是仅仅几个变量名的分歧。以是第一个要完成的就是要把这个封装起来,第二个就是要把分页的导航条也封装起来,第三个,不习气哪些把数据显现部分也封装起来的办法,这不是便利编程,对与哪些对显现效果每次都分歧的用户来讲,比本人写分页还要贫苦。以是我的目地就是对RecordSet举行一些复杂的封装。
2、创立历程
以是我写的第一个属性,就是返一个经由处置的RecordSe
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
这个属性的感化是更据指定RecordSet确当后面,并到指针指向以后页的第一笔记录,这个应当就是全部类的完成份页的中心了,固然,个中的一些参数是靠别的的属性来猎取,以是这里特地先容一个这个类所要的基础参数
=============================================
GetConn失掉数据库毗连
=============================================
PublicPropertyLetGetConn(obj_Conn)
SetXD_Conn=obj_Conn
EndProperty
=============================================
GetSQL失掉查询语句
==============================================
PublicPropertyLetGetSQL(str_sql)
XD_SQL=str_sql
EndProperty
===============================================
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
以上几个是在利用类的历程必须要指定的参数,已经我在写属性的时分对每一个传进的参数加上IsObject(obj_conn)等判别,为的是类的强健,可是厥后想来想往,这个对与ASP来讲没有需要,不加还能加速点速率,至于为何如许,我想列位在利用过程当中也会发明,加还不如不加。这也是我经由了头脑奋斗今后才往失落了,只保存了一些需要的考证。
一个参数就是以后页的取得,在程序中我用int_curpage来标识,这个的话放在类的创立过程当中取得在好也没有了
========================
设定一些参数的a认值
========================
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
到这里这个类分的功效基础已完成了,只需在挪用这个类的页面的URL前面加上page=n,它就会显现第n页的内容了,以是接下往要做的就是创立一个数据导航条了,我把它计划为相似以面的情势
93[1][2][3][4][5][6][7][8]4:页次:1/8页共51笔记录7条/每页
在页面里经由过程挪用ShowPage()的办法显现出来,ShowPage能够在GetRS今后的恣意地位挪用,也能够挪用屡次
PublicSubShowPage()
Dimstr_tmp
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""
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般 |
|