动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 手机学院 | 邮件系统 | 网络安全 | 认证考试
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ ASP技巧 ]的信息

本月文章推荐
.建立三层结构的ASP应用程序.
.ASP中从数据库读取二进制文件数据.
.一个高效的数据分页的存储过程.
.ASP限制只能中文输入的方法.
.用VB6读写数据库中的图片.
.ASP3.0中的流控制能力(3) &.
.关于密码校验.
.ASP跳过错误.
.检查来访IP是否合法的实际应用.
.bbs的树状结构算法.
.提高ASP性能的最佳选择(二).
.asp使用activex组件实例一.
.ADO+管理器功能.
.asp下闰年计算方法.
.组件对象开发Web应用的实例分析.
.SQL Server 存储过程的分页.
.不能ASP图像组件来生成图像的ASP.
.几种常用排序算法(asp) .
.一个普通的数据库例子源源程序.
.ASP防SQL注入的方法.

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

发表日期:2004-10-4 |


<%
'==========================================
'ShowMorePage ASP版本
'Version HuangJM1.00
'Code by maomao
'Create Date 2004-09-28
'QQ:5144707
'http://blog.csdn.net/maomaoysq
'Write for my lover:HuangJM
'本程序可以免费使用、修改,但请保留以上信息
'
'Function
'本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义,
'支持URL多个参数:http://www.***.com/***.asp?aa=1&page=9&bb=2
'
'
'Paramers:
'PapgeSize 定义分页每一页的记录数
'GetCurPageNum 返回当前页的记录集数目此属性只读
'GetRS 返回经过分页的Recordset此属性只读
'GetConn 得到数据库连接
'GetSQL 得到查询语句
'Interface of Class
'ShowPage 显示分页导航条,唯一的公用方法
'
'#############类调用样例#################
'创建对象
'Set hjmPage=new ShowMorePage
'得到数据库连接
'hjmPage.getconn=conn
'sql语句
'hjmPage.getsql="select * from shop_books where newsbook=1 order by bookid desc"
'设置每一页的记录条数据为20条,默认显示10条
'hjmPage.pagesize=20
'显示分页信息,可在任意位置调用,可以调用多次
'hjmPage.showpage()
'set rs=hjmPage.getrs() '返回Recordset

'显示数据开始
'这里就可以自定义显示方式了
'for i=1 to hjmPage.GetCurPageNum '当前页的记录数目
'response.write left(trim(rs("bookname")),13)&"...."
'rs.movenext
'next
'显示数据结束
'set hjmPage=nothing
'#############类调用样例#################
'================================================

Const Btn_First="<font face=""webdings"">9</font>" '定义第一页按钮显示样式
Const Btn_Prev="<font face=""webdings"">3</font>" '定义前一页按钮显示样式
Const Btn_Next="<font face=""webdings"">4</font>" '定义下一页按钮显示样式
Const Btn_Last="<font face=""webdings"">:</font>" '定义最后一页按钮显示样式
Const XD_Align="Center" '定义分页信息对齐方式
Const XD_Width="100%" '定义分页信息框大小

Class ShowMorePage
Private Obj_Conn,Obj_Rs,Str_Sql,int_PageSize,Str_Errors,Int_CurPage,Str_URL,Int_TotalPage,Int_TotalRecord


'================================================
'PageSize 属性
'设置每一页的分页大小
'================================================
Public Property Let PageSize(intvalue)
If IsNumeric(intvalue) Then
int_PageSize=CLng(intvalue)
Else
Str_Errors=Str_Errors & "PageSize的参数不正确"
ShowError()
End If
End Property
Public Property Get PageSize
If int_PageSize="" or (not(IsNumeric(int_PageSize))) Then
PageSize=10
Else
PageSize=int_PageSize
End If
End Property

'================================================
'GetRS 属性
'返回分页后的记录集
'================================================
Public Property Get GetRs()
if Int_TotalRecord= 0 then Call GetPage()
If not(Obj_Rs.eof and Obj_Rs.BOF) Then
if Int_CurPage<>1 then
if Int_CurPage-1<Int_TotalPage then
Obj_Rs.move (Int_CurPage-1)*PageSize
dim bookmark
bookmark=Obj_Rs.bookmark
else
Int_CurPage=1
end if
end if
End If
Set GetRs=Obj_Rs
End Property

'================================================
'GetCurPageNum 属性
'返回当前页的记录集数目
'================================================
Public Property Get GetCurPageNum()
dim int_PageNum
int_PageNum = int_PageSize
if Int_TotalRecord= 0 then Call GetPage()
If Int_CurPage>Int_TotalPage Then
Int_CurPage=Int_TotalPage
int_PageNum = Int_TotalRecord-(Int_TotalPage-1)*int_PageSize
ElseIf Int_CurPage=Int_TotalPage Then
int_PageNum = Int_TotalRecord-(Int_TotalPage-1)*int_PageSize
End If
GetCurPageNum = int_PageNum
End Property

'================================================
'GetConn 得到数据库连接
'
'================================================
Public Property Let GetConn(sconn)
Set Obj_Conn=sconn
End Property

'================================================
'GetSQL 得到查询语句
'
'================================================
Public Property Let GetSQL(svalue)
Str_Sql=svalue
End Property


'================================================
'Class_Initialize 类的初始化
'初始化当前页的值
'
'================================================
Private Sub Class_Initialize
'========================
'设定一些参数的黙认值
'========================
int_PageSize=10 '设定分页的默认值为10
Int_TotalRecord= 0
'========================
'获取当前面的值
'========================
If request("page")="" Then
Int_CurPage=1
ElseIf not(IsNumeric(request("page"))) Then
Int_CurPage=1
ElseIf CInt(Trim(request("page")))<1 Then
Int_CurPage=1
Else
Int_CurPage=CInt(Trim(request("page")))
End If

End Sub
'================================================
'openRS 打开数据集
'有首页、前一页、下一页、末页、还有数字导航
'
'================================================
Private Sub openRS()
Set Obj_Rs=Server.createobject("adodb.recordset")
Obj_Rs.Open Str_Sql,Obj_Conn,1,1
End Sub
'================================================
'getPage 创建分页导航条
'有首页、前一页、下一页、末页、还有数字导航
'
'================================================
Private Sub GetPage()
If TypeName(Obj_Rs)<>"Object" Then Call openRS()
Int_TotalRecord=Obj_Rs.RecordCount
If Int_TotalRecord<=0 Then
Str_Errors=Str_Errors & "总记录数为零,请输入数据"
Call ShowError()
End If
If Int_TotalRecord mod PageSize =0 Then
Int_TotalPage = Int_TotalRecord \ int_PageSize
Else
Int_TotalPage = Int_TotalRecord \ int_PageSize+1
End If
If Int_CurPage>Int_TotalPage Then
Int_CurPage=Int_TotalPage
End If
End Sub

'================================================
'ShowPage 创建分页导航条
'有首页、前一页、下一页、末页、还有数字导航
'
'================================================
Public Sub ShowPage()
Dim str_tmp
Str_URL = GetUrl()
if Int_TotalRecord= 0 then Call GetPage()
'================================================
'显示分页信息,各个模块根据自己要求更改显求位置
'================================================
response.write ""
str_tmp=ShowFirstPrv
response.write str_tmp
str_tmp=showNumBtn
response.write str_tmp
str_tmp=ShowNextLast
response.write str_tmp
str_tmp=ShowPageInfo
response.write str_tmp
response.write ""
End Sub

'================================================
'ShowFirstPrv 显示首页、前一页
'www.knowsky.com
'================================================
Private Function ShowFirstPrv()
Dim Str_tmp,int_prvpage
If Int_CurPage=1 Then
str_tmp=Btn_First&" "&Btn_Prev
Else
int_prvpage=Int_CurPage-1
str_tmp="<a href="""&Str_URL & "1" & """>" & Btn_First&"</a> <a href=""" & Str_URL & CStr(int_prvpage) & """>" & Btn_Prev&"</a>"
End If
ShowFirstPrv=str_tmp
End Function

'================================================
'ShowNextLast 下一页、末页
'
'================================================
Private Function ShowNextLast()
Dim str_tmp,int_Nextpage
If Int_CurPage>=Int_TotalPage Then
str_tmp=Btn_Next & " " & Btn_Last
Else
Int_NextPage=Int_CurPage+1
str_tmp="<a href=""" & Str_URL & CStr(int_nextpage) & """>" & Btn_Next&"</a> <a href="""& Str_URL & CStr(Int_TotalPage) & """>" & Btn_Last&"</a>"
End If
ShowNextLast=str_tmp
End Function


'================================================
'ShowNumBtn 数字导航
'每次显示10页
'================================================
Private Function showNumBtn()
Dim i,str_tmp,m,n
m = Int_CurPage - 4
n = Int_TotalPage
if n>1 then
for i = 1 to 10
if m < 1 then m = 1
if m > n then
exit for
end if
str_tmp=str_tmp & "[<a href=""" & Str_URL & CStr(i) & """>"&i&"</a>] "
m = m + 1
next
end if
showNumBtn=str_tmp
End Function


'================================================
'ShowPageInfo 分页信息
'更据要求自行修改
'================================================
Private Function ShowPageInfo()
Dim str_tmp
str_tmp="页次:"&Int_CurPage&"/"&Int_TotalPage&"页 共"&Int_TotalRecord&"条记录 "&int_PageSize&"条/每页"
ShowPageInfo=str_tmp
End Function
'================================================
'GetURL 得到当前的URL
'更据URL参数不同,获取不同的结果
'================================================
Private Function GetURL()
Dim strUrl,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"))
If str_params="" Then
result_url=tmp_URL & "?page="
Else
If InstrRev(str_params,search_str)=0 Then
result_url=tmp_URL & "?" & str_params &"&page="
Else
j=InstrRev(str_params,search_str)-2
If j=-1 Then
result_url=tmp_URL & "?page="
Else
str_lparams=Left(str_params,j)
str_rparams=right(str_params,len(str_params)-j-1)
if InStr(str_rparams,"&")<>0 then
str_rparams=right(str_rparams,len(str_rparams)-InStr(str_rparams,"&")+1)
else
str_rparams = ""
end if
result_url=tmp_URL & "?" & str_lparams&str_rparams&"&page="
End If
End If
End If
GetURL=result_url
End Function

'================================================
' 设置 Terminate 事件。
'================================================
Private Sub Class_Terminate
Obj_Rs.close
Set Obj_Rs=nothing
Obj_Conn.close
set Obj_Conn = nothing
End Sub
'================================================
'ShowError 错误提示
'================================================
Private Sub ShowError()
If Str_Errors <> "" Then
Response.Write("" & Str_Errors & "")
Response.End
End If
End Sub

End class
%>


<!--#include file="include/function.asp"-->
<%
dim conn
call dbconnect()

'#############类调用样例#################
'创建对象
Set hjmPage=new ShowMorePage
'得到数据库连接
hjmPage.getconn=conn
'sql语句
hjmPage.getsql="select Top 6 * from shop_books where newsbook=1 order by bookid desc"
'设置每一页的记录条数据为5条
hjmPage.pagesize=2
set rs=hjmPage.getrs() '返回Recordset
'显示分页信息,这个方法可以,在set rs=hjmPage.getrs()以后,可在任意位置调用,可以调用多次
hjmPage.showpage()

'显示数据
Response.Write("<br/>")
for i=1 to hjmPage.GetCurPageNum '当前页的记录数目
'这里就可以自定义显示方式了
%>

上一篇:asp查询xml的代码,实现了无刷新、模糊查询功能 人气:15692
下一篇:一个asp函数, 解决SQL Injection漏洞 人气:11872
浏览全部ASP的内容 Dreamweaver插件下载 网页广告代码 2009年新年快乐
  最新网站源码 最新软件下载
2009-1-8 SMF论坛Simple Machines Forum v
2009-1-8 SMF论坛Simple Machines Forum v
2009-1-8 深度学习(asp)拼图游戏 v0.2.3
2009-1-8 纵横B2B电子商务系统XYECS!B2B v
2009-1-8 马克斯CMS v2.0 bulid 090105 be
2009-1-8 淘宝妈妈_淘客推广系统 v1.0
2009-1-8 淄博某企业网站源码
2009-1-8 silverlight制作的手机功能演示
2009-1-8 大型WEB束鹿三国游戏 特别版
2009-1-7 汉字任意点阵字库制作软件 V2.6
2009-1-7 书法家毛笔字生成器 Ougishi V4.
2009-1-7 字体修复大师
2009-1-7 微雨字体效果浏览器 1.0
2009-1-7 字体试衣间 2.9.6.8 豪华版
2008-11-29 Tencent Traveler 4.4
2008-11-29 龙卷风网络收音机 v3.0.0.0
2008-11-29 Intel Chipset Software Install
2008-11-29 TweakVI 1.0 Build 1100
  发表评论
姓 名: 验证码: [ 查看评论 ]
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | OPEN参数生成器 | 弹出式窗口代码产生器 | 密码登录生成器 | 在线按钮生成器 | Meta标签生成器 | 多色彩特效字代码生成器 | 网页代码调试器 | 在线FTP登陆 | Flash取色器 | 配色代码对照表 | 配色辞典 | CSS生成器 | 广告代码 | 框架网页代码生成器 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | 在线调色板 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 公积金贷款计算 | 购房银行按揭利率计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 元素周期表 | 健康查询 | 世界时间 | 全国各地车牌查询 | 全国车辆交通违章查询 | 万年历 | 二十四节气 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2009 www.knowsky.com All rights reserved | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成