保定网络公司+保定网站建设+保定做网站 保定市网络公司 保定市网站设计 保定市网站建设 保定市网站制作 保定市网站推广
保定制作网站,保定建设网站,保定优化网站的公司 设为首页
保定市网站设计,保定市网站建设,保定市网站优化,保定市网站推广
保定网站设计,保定网站建设,保定网站优化,保定网站推广 给我留言
首页       关于我们   作品展示   项目服务   域名空间   公司新闻   建站学院   SEO优化   网站建设   建站知识   联系我们   
保定建站真心为您服务!承接网站建设 + 网页设计 + FLASH设计 + 网站开发 + 平面设计,专业技术人员一对一服务让建站更加专业更加放心……二十小时服务热线:+86)13730168216。欢迎来电咨询…… 现在时间是
文章展示
网站建设 网站推广 一切竟掌握

支持多风格变换的ASP分页类

发布者:网站建设 保定做网站  发布时间:2009-6-11    点击次数:28810
<% 
’****************************** 
’名称:分页类 
’日期:2005/12/3 
’作者:西楼冷月 
’网址:www.xilou.net | www.chinaCMS.org 
’描述:无 
’版权:转载请注名出处,作者 
’****************************** 
Class Page 
Private CurrPage 
Private PageN 
Private UrlStr 
Private TempStr 
Private ErrInfo 
Private IsErr 
Private TotalRecord 
Private TotalPage 
Public PageRs 

Private TempA(11) 
Private TempB(8) 
’------------------------------------------------------------ 
Private Sub Class_Initialize() 
CurrPage=1’//默认显示当前页为第一页 
PageN=10’//默认每页显示10条数据 
UrlStr="#" 
TempStr="" 
ErrInfo="ErrInfo:" 
IsErr=False 
End Sub 
Private Sub Class_Terminate() 
If IsObject(PageRs) Then 
PageRs.Close 
Set PageRs=Nothing 
End If 
Erase TempA 
Erase TempB 
End Sub 
’---------------------------------------------------------- 
’//获取当前页码 
Public Property Let CurrentPage(Val) 
CurrPage=Val 
End Property 
Public Property Get CurrentPage() 
CurrentPage=CurrPage 
End Property 
’//获取每页显示条数 
Public Property Let PageNum(Val) 
PageN=Val 
End Property 
Public Property Get PageNum() 
PageNum=PageN 
End Property 
’//获取URL 
Public Property Let Url(Val) 
UrlStr=Val 
End Property 
Public Property Get Url() 
Url=UrlStr 
End Property 
’//获取模板 
Public Property Let Temp(Val) 
TempStr=Val 
End Property 
Public Property Get Temp() 
Temp=TempStr 
End Property 
’------------------------------------------------------------ 

Public Sub Exec(Sql,ConnObj) 
On Error Resume Next 
Set PageRs=Server.CreateObject("ADODB.RecordSet") 
PageRs.CursorLocation = 3 ’使用客户端游标,可以使效率提高 
PageRs.PageSize = PageN ’定义分页记录集每页显示记录数 
PageRs.Open Sql,ConnObj,0,1 
If Err.Number<>0 Then 
Err.Clear 
PageRs.Close 
Set PageRs=Nothing 
ErrInfo=ErrInfo&"建立或打开记录集错误..." 
IsErr=True 
Response.Write ErrInfo 
Response.End 
End If 
TotalRecord=PageRs.RecordCount’//如果为0呢? 
If TotalRecord>=1 Then 
’----------------------------------------------------------------------------开始 
’//计算总页数,Ps,为什么不用PageRs.PageCount呢? 
’If TotalRecord Mod PageN=0 Then 
’TotalPage=PageRs.RecordCount\PageN 
’Else 
’TotalPage=PageRs.RecordCount\PageN 
’TotalPage=Abs(Int(TotalPage)) 
’End If 
TotalPage=PageRs.PageCount 
’//处理当前接收页码,默认的为1,所以不是数字类型的都会为1 
If IsNumeric(CurrPage) Then 
CurrPage=CLNg(CurrPage) 
If CurrPage<1 Then CurrPage=1 
If CurrPage>TotalPage Then CurrPage=TotalPage 
Else 
’//Dim M:M="":IsNumeric(M)=True 
CurrPage=1 
End If 
’---------------------------------------------------------------------------结束 
Else 
TotalPage=0 
CurrPage=1 
End If 
’// 
PageRs.AbsolutePage = CurrPage ’absolutepage:设置指针指向某页开头 
PageRs.PageSize=PageN 
End Sub 
Private Sub Init() 
’Private TempA(10) 
TempA(1)="{N1}" ’//首页 
TempA(2)="{N2}"’//上一页 
TempA(3)="{N3}"’//下一页 
TempA(4)="{N4}"’//尾页 
TempA(5)="{N5}"’//当前页码 
TempA(6)="{N6}"’//页码总数 
TempA(7)="{N7}"’//每页条数 
TempA(8)="{N8}"’//文章总数 
TempA(9)="{L}"’//循环标签开始 
TempA(10)="{N}"’//循环内单标签:页码 
TempA(11)="{L/}"’//循环标签结束 
’Private TempB(8) 
TempB(1)="首页" 
TempB(2)="上一页" 
TempB(3)="下一页" 
TempB(4)="尾页" 
TempB(5)=CurrPage’//当前页码 
TempB(6)=TotalPage’//页码总数 
TempB(7)=PageN’//每页条数 
TempB(8)=TotalRecord’//文章总数 
End Sub 
Public Sub Show(Style) 
If IsErr=True Then 
Response.Write ErrInfo 
Exit Sub 
End If 

Call Init() 
Select Case Style 
Case 1 
Response.Write StyleA() 
Case 2 
Response.Write StyleB() 
Case 3 
Response.Write StyleC() 
Case 4 
Response.Write StyleD() 
Case Else 
ErrInfo=ErrInfo&"不存在当前样式..." 
Response.Write ErrInfo 
End Select 
End Sub 
Public Function ShowStyle(Style) 
If IsErr=True Then 
ShowStyle=ErrInfo 
Exit Function 
End If 

Call Init() 
Select Case Style 
Case 1 
ShowStyle= StyleA() 
Case 2 
ShowStyle= StyleB() 
Case Else 
ErrInfo=ErrInfo&"不存在当前样式..." 
ShowStyle=ErrInfo 
End Select 
End Function 

Private Function StyleA() 
’首页 上一页 下一页 尾页 本页为第1/20页,共20页,每页10条,文章总数200条 
’//分页样例:[首页] [上页] [下页] [尾页] [页次:4/5页] [共86篇 20篇/页] 转到:_ 页 
’//标签:{N1} {N2} {N3} {N4} 共:{N8}条记录 {N6}页 当前为第{N5}页 每页{N7}条 
If IsEmpty(TempStr) Then 
ErrInfo=ErrInfo&"模板为空..." 
StyleB=ErrInfo 
Exit Function 
End If 
Dim M 
If TotalPage>1 Then 
If CurrPage>1 Then 
M="<a href=’"&UrlStr&"Page=1’>"&"首页"&"</a>" 
TempStr=Replace(TempStr,"{N1}",M) 
M="<a href=’"&UrlStr&"Page="&CurrPage-1&"’>"&"上一页"&"</a>" 
TempStr=Replace(TempStr,"{N2}",M) 
If CurrPage<TotalPage Then 
M="<a href=’"&UrlStr&"Page="&CurrPage+1&"’>"&"下一页"&"</a>" 
TempStr=Replace(TempStr,"{N3}",M) 
M="<a href=’"&UrlStr&"Page="&TotalPage&"’>"&"尾页"&"</a>" 
TempStr=Replace(TempStr,"{N4}",M) 
Else 
TempStr=Replace(TempStr,"{N3}","下一页") 
TempStr=Replace(TempStr,"{N4}","尾页") 
End If 
Else 
TempStr=Replace(TempStr,"{N1}","首页") 
TempStr=Replace(TempStr,"{N2}","上一页") 
M="<a href=’"&UrlStr&"Page="&CurrPage+1&"’>"&"下一页"&"</a>" 
TempStr=Replace(TempStr,"{N3}",M) 
M="<a href=’"&UrlStr&"Page="&TotalPage&"’>"&"尾页"&"</a>" 
TempStr=Replace(TempStr,"{N4}",M) 
End If 
Else 
TempStr=Replace(TempStr,"{N1}","首页") 
TempStr=Replace(TempStr,"{N2}","上一页") 
TempStr=Replace(TempStr,"{N3}","下一页") 
TempStr=Replace(TempStr,"{N4}","尾页") 
End If 
T=TempStr 
T=Replace(T,"{N8}",TotalRecord) 
T=Replace(T,"{N6}",TotalPage) 
T=Replace(T,"{N5}",CurrPage) 
T=Replace(T,"{N7}",PageN) 
TempStr=T 
StyleA=TempStr 
End Function 

Private Function StyleB() 
’首页 |< 1 2 3 4 5 6 7 >| 尾页 
’//标签:{N1} {N2} {L}{N}{L/}{N3}{N4} 
If IsEmpty(TempStr) Then 
ErrInfo=ErrInfo&"模板为空..." 
StyleB=ErrInfo 
Exit Function 
End If 
Dim ForceNum,BackNum’//当前页的前面和后面显示个数 
ForceNum=5 
BackNum=4 
Dim M 
’//首页 
M="<a href=’"&UrlStr&"Page=1’>"&TempB(1)&"</a>" 
TempStr=Replace(TempStr,"{N1}",M) 
’//尾页 
M="<a href=’"&UrlStr&"Page="&TempB(6)&"’>"&TempB(4)&"</a>" 
TempStr=Replace(TempStr,"{N4}",M) 
’//前一页 
M="|<" 
If CurrPage-1>=1 Then 
M="<a href=’"&UrlStr&"Page="&CurrPage-1&"’>"&"|<"&"</a>" 
End If 
TempStr=Replace(TempStr,"{N2}",M) 
’//后一页 
M=">|" 
If CurrPage+1<=TotalPage Then 
M="<a href=’"&UrlStr&"Page="&CurrPage+1&"’>"&">|"&"</a>" 
End If 
TempStr=Replace(TempStr,"{N3}",M) 
’//取出循环标签 
Dim N1,N2,N3,N4,N5,N6 
If InStr(TempStr,"{L}")>0 Then 
N1=InStr(TempStr,"{L}") 
End If 
If InStr(TempStr,"{L/}")>0 Then 
N2=InStr(TempStr,"{L/}") 
End If 
If N2<=N1 Then 
ErrInfo=ErrInfo&"循环标签出错..." 
StyleB=ErrInfo 
Exit Function 
End If 
N3=Mid(TempStr,N1,N2-N1+4)’//储存包括{L}{L/}循环标签的模板 
N4=Replace(N3,"{L}","")’//储存不包括{L}{L/}循环标签的模板 
N4=Replace(N4,"{L/}","") 
’//页码列表 
Dim FirstPageNum,LastPageNum 
If CurrPage-ForceNum<=1 Then 
FirstPageNum=1 
PageList="" 
Else 
FirstPageNum=CurrPage-ForceNum 
PageList="... ..." 
End If 
If CurrPage+BackNum>=TotalPage Then 
LastPageNum=TotalPage 
PageList_2="" 
Else 
LastPageNum=CurrPage+BackNum 
PageList_2="... ..." 
End If 
Dim I 
For I=FirstPageNum To LastPageNum 
If I=CurrPage Then 
N5=Replace(N4,"{N}","<b>"&I&"</b>") 
N6=N6&N5 
Else 
M="<a href=’"&UrlStr&"Page="&I&"’>"&I&"</a>" 
N5=Replace(N4,"{N}",M) 
N6=N6&N5 
End If 
Next 
TempStr=Replace(TempStr,N3,N6) 
StyleB=TempStr 
End Function 

Private Function StyleC() 
’首页 |< |<< 1 2 3 4 5 6 7 >>| >| 尾页 
’//此风格在StyleB的基础上修改,增加两个标签:{N9}上10页 {N10}下10页 
’//标签:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4} 
Dim T 
T=StyleB() 
’//前十页 
M="|<<" 
If CurrPage-10>=1 Then 
M="<a href=’"&UrlStr&"Page="&CurrPage-10&"’>"&"|<<"&"</a>" 
End If 
T=Replace(T,"{N9}",M) 
M=">>|" 
If CurrPage+10<=TotalPage Then 
M="<a href=’"&UrlStr&"Page="&CurrPage+10&"’>"&">>|"&"</a>" 
End If 
T=Replace(T,"{N10}",M) 
StyleC=T 
End Function 

Private Function StyleD() 
’//此风格在StyleC的基础上修改 
’//共{N8}条记录 {N6}页 当前为第{N5}页 每页{N7}条 
’//首页 |< |<< 1 2 3 4 5 6 7 >>| >| 尾页 
’//标签:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4} 
Dim T 
T=StyleC() 
T=Replace(T,"{N8}",TotalRecord) 
T=Replace(T,"{N6}",TotalPage) 
T=Replace(T,"{N5}",CurrPage) 
T=Replace(T,"{N7}",PageN) 
StyleD=T 
End Function 

End Class 
%> 

调用示例: 

程序代码 
Set test = New Page 
test.CurrentPage=request.QueryString("page") ’自己去读取拉 
test.temp="{N1} {N2} {L} {N} {L/} {N3} {N4}" 
test.Exec "Select * From tblname",conn 
test.Show 4 ’调用第四种风格显示分页 
test.PageNum = 5 
 
相关文章展示: 关键词: 支持  多风格  变换  ASP  分页   
Asp编码优化技巧8则 [38227]
asp生成UTF-8格式的文件 [37926]
ASP利用缓存提高数据显示效率 [39603]
JS判断新旧密码一致 [33196]
图片播放器 - 图片自动循环变换 [31949]
解决网站被反复挂马的问题 [28638]
Jmail组件发送asp页表单到邮箱 [30229]
100个ASP错误提示 [27606]
ASP无法更新ACCESS数据库解决方法 [27520]
ASP版本的Web在线代理 [28982]
 
保定建站欢迎您的咨询
详细地址
  资询热线:
  0312-5975933
业务咨询QQ
业务咨询QQ
业务咨询QQ
空间域名QQ
技术支持QQ
MSN客服
推荐文章
查看更多
· 蛇形溯源-通过话题链接,跨平台获取相关话题的关键词与出现频次
· 社群营销第一人:陈艺明【社群推广首选】社群宣传费用
· 信息发布技巧:产品诱人,卖点突出
· 保定网络公司哪家好?保定最好的网络公司
· 高阳经济开发区与我公司司签订网站建设服务
· 保定微营销报名啦!落地操作(微生活学院)别和钱较劲- 陈艺明
· 保定微营销【最好的】微营销活动报名开始了,陈艺明讲述微生活营
· 保定微营销:陈艺明F2F微生活营销课程开始了!保定微营销最好
· 保定做网站最便宜的多少钱?保定哪家做网站最便宜?
· 保定手机网站建设,保定APP手机网站制作
· 祝贺保定职业技术学院武术协会与我司签订网站建设
· 陈老师讲解:保定中小企业网络微营销的困难困难“解决”低小丑的
   最新作品
亿家能商贸(中英文网站制作-美国服务器)-北京网站建设
亿家能商贸(中英文网站制作-美国服务器)
(网站设计)北京君闻香酒业有限公司-北京网站建设
(网站设计)北京君闻香酒业有限公司
河北保定博时广告(网站设计)-北京网站建设
河北保定博时广告(网站设计)
保定IDO婚庆公司(网站优化)-北京网站建设
保定IDO婚庆公司(网站优化)
保定天生桥牌红枣贡酒(网站设计)-北京网站建设
保定天生桥牌红枣贡酒(网站设计)
保定党史研究史(网站制作)-北京网站建设
保定党史研究史(网站制作)
保定达瑞设备有限公司(网站优化)-北京网站建设
保定达瑞设备有限公司(网站优化)
VI设计公司(网站设计制作)-北京网站建设
VI设计公司(网站设计制作)
|   网站建设  |   关于我们  |   建站学院  |   域名空间  |   作品展示  |   招聘岗位  |   服务项目  |   联系我们  |   建站常识  |   建站论坛  |  

客服中心:河北省保定市永华路与西大街交汇处(查看地图路线)秀兰公寓B座4楼右转即到(428号)。
网络公司联系电话:0312-5975933 / 2035252 / 3146161 二十小时联系电话:13730168216   网络公司售后服务电话:15603212829 传真:0312-3146161
工作时间:周一至周六.上午:8:00-12:00 下午:2:00-6:00 周日全天服务电话:13730168216
客服企业邮箱:kefu@jihewang.com   技术企业邮箱:jishu@jihewang.com   经理企业邮箱:admin@jihewang.com
网络公司名称:   工商注册号:130604000010106   邮编:07100
保定网络公司永久网址:http://www.jihewang.com
Copyright © 2003-2012 保定建站 All rights reserved. 冀ICP备05000154号
本公司业务:保定网站建设_保定网站制作_保定网站推广_保定网页网站设计_保定400电话_软件群发_保定网络公司以敬业、负责的态度为您做网站,以客户的成功为成功。

    
客服
客服
技术
域名
空间
售后
咨询
MSN
电邮