ASP网页编程之创立一个ASP分页类(一)文章部分
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。创立|分页创立一个ASP通用分页类平波
从入手下手进修到利用ASP到如今也写了很多程序了,最使人头痛的是写数据分页,每次都是因为几个变量名或几个参数的分歧,因此必要每次都写哪一段冗杂而又冗杂的分页代码,代码长了使得程序的可读性变差,简单出差,调试半天也找不堕落在那里,以是渐渐的我入手下手利用一些网上的供应的分页函数或分页类。切实其实费事很多,可是一般的函数和类的做法都是就数据显现部分也封装了起来,每次为了到达本人必要的显求效果要往修改函数大概类的自己,以是利用起来也不是怎样便利,本人写的分页改起来已够庞大了,更不要说他人的了。
以是趁今天有空本人写了一个分页的类,自我感到优秀(不要用鸡蛋砸我),在这里和人人分享一下本人的履历(谈不上履历,感受吧)。在这里我也不想说分页的道理了,归正人人都懂,要我往深切的谈我也不会。呵呵。
1、创立分页类的方针
在写之前,我曾想过,我事实要写怎样一个类,回忆起之前写分页历程的时分,最烦的莫过于每次都要写哪一段庞大的分页代码,最年夜的懊恼每次都是仅仅几个变量名的分歧。以是第一个要完成的就是要把这个封装起来,第二个就是要把分页的导航条也封装起来,第三个,不习气哪些把数据显现部分也封装起来的办法,这不是便利编程,对与哪些对显现效果每次都分歧的用户来讲,比本人写分页还要贫苦。以是我的目地就是对RecordSet举行一些复杂的封装。
2、创立历程
以是我写的第一个属性,就是返一个经由处置的RecordSet
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来标识,这个的话放在类的创立过程当中取得在好也没有了
PrivateSubClass_Initialize
========================
设定一些参数的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页的内容了,以是接下往要做的就是创立一个数据导航条了,我把它计划为相似以面的情势
934:页次: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<pagesizeThen
int_TotalPage=1
Else
Ifint_totalRecordmodPageSize=0Then
int_TotalPage=C</p>由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。 Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) Session:这个存储跟客户端会话过程的数据,默认20分钟失效 从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 不能只是将它停留在纸上谈兵的程度上。 Session:这个存储跟客户端会话过程的数据,默认20分钟失效 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
页:
[1]