仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 399|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:创立一个ASP通用分页类

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:38:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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服务器,所以性能稳定性也一般
柔情似水 该用户已被删除
沙发
 楼主| 发表于 2015-1-20 10:50:50 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-25 22:27:22 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
谁可相欹 该用户已被删除
地板
发表于 2015-2-4 06:32:05 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
爱飞 该用户已被删除
5#
发表于 2015-2-9 17:45:24 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
透明 该用户已被删除
6#
发表于 2015-2-27 13:09:32 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
简单生活 该用户已被删除
7#
发表于 2015-3-9 05:16:12 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
若相依 该用户已被删除
8#
发表于 2015-3-16 20:54:06 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
飘灵儿 该用户已被删除
9#
发表于 2015-3-23 00:49:10 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 04:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表