ASP VBScript 分页函数 by Stabx, 最终版 2006-5-22

原创 2006年05月22日 19:58:00
标题: ASP VBScript 分页函数 by Stabx, 最终版 2006-5-22

正文:

QUOTE:

ASP VBScript 分页函数 by Stabx, 最终版 2006-5-22

'//注: 上一版本用 表单的 select 列表框, 在页数不多的时候还好,页数上百就非常的浪费资源
'//这次用 表单的文本输入框, 使用 hidden 属性; 表单的 get 提交, 解决问题. 
'//并判断每页显示数目如果大于记录总数, 不显示翻页导航, 只显示记录数

页面链接显示如:
首页 上十 上一 1 2 3 4 5 6 7 8 9 10  下一 下十 尾页 转到:___
   50篇/页  1/100页  共 4964篇

 


CODE:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' subject    : ASP VBScript 分页函数 by Stabx, 最终版 2006-5-22
'
' writer    : Stabx<[email]shawl.qiu@gmail.com[/email]>
'
' blog        : [url]http://blog.csdn.net/btbtd[/url] / [url]http://btbtd.exblog.jp/[/url] 
'
' blog/site    : Phoenix.GI - P.GI / / 绿色学院 - Green Institute
'
' date        : 2006-5-22
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'//注: 上一版本用 表单的 select 列表框, 在页数不多的时候还好,页数上百就非常的浪费资源
'//这次用 表单的文本输入框, 使用 hidden 属性; 表单的 get 提交, 解决问题. 
'//并判断每页显示数目如果大于记录总数, 不显示翻页导航, 只显示记录数
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 使用例子
'sample call '''// call fPageCount(rs,50,1,10,url_,"#CCCCCC") //'''
'sample call '''// call fPageCount(otherRSname,50,1,10,url_,"#CCCCCC") //'''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'参数使用说明
''''''''''''''''''''''''''''''''''''''
'rs                 |     数据库表连接名
'repeatnum            |    每页显示记录总数
'startbynum            |    从多少开始循环显示
'numlink            |    显示数字链接导航数目
'url                |    翻页 URL 链接 -- 例: "asp.asp?pageview="
'visitedlinkcolor    |    当前链接页号或没有链接页号的链接颜色
'''''''''''''''''''''
'全例: call fPageCount(rs,50,1,10,"asp.asp?pageview=","#CCCCCC")
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'翻页输入框使用例子
'''''''''''''''''''
'<form NAME="formT" METHOD="get" ACTION="">
     '<% 
         'if rqqcid_<>"" then
                 'response.write "<input TYPE='hidden' NAME='classid' VALUE="&rqqcid_&">"
         'end if 
         'if rqqncid_<>"" then
                 'response.write "<input TYPE='hidden' NAME='nclassid' VALUE="&rqqncid_&">"
         'end if 
     '%'>
     '<div CLASS="center">
         '<% call fPageCount(rs,50,1,10,"class.asp?classid="&rqqcid_&"&nclassid="&rqqncid_&"&pageview=","#CCCCCC")%'>
     '</div>
'</form>
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function fPageCount(rs,repeatnum,startbynum,numlink,url,visitedlinkcolor)

    toF_="首页"
     toP10_=" 上十"
     toP1_=" 上一"
     toN1_=" 下一"
     toN10_=" 下十"
     toL_="尾页"
    
     if not rs.eof  then
             rrc_=rs.recordcount
     end if

    if (not rs.eof or not rs.bof) and rrc_>repeatnum then '记录总数大于每页总数才显示分页链接
        
             pageview=CInt(Request("pageview"))  '读取 URL 页号
             rs.PageSize=repeatnum '定义每页显示记录数
        
         If pageview<=0 Then pageview=1 '如果 pageview 小于或等于0, 返回值1
             If pageview>rs.PageCount Then pageview=rs.PageCount ' 如果 pageview 大于分页总数, 返回分页末页值  
             rs.AbsolutePage=pageview '定义当前页码
            
             cPageNo=rs.AbsolutePage
             tpagecount=rs.pagecount
        
             If cPageNo<1 Then cPageNo=1  '如果页数小于 1, 默认为 1; 当前页, cPageNo = Current Page NO.
             If tPageCount<1 Then tPageCount=1  
             If cPageNo>tPageCount Then cPageNo=tPageCount   
                 Dim NaviLength  
                 NaviLength=numlink ' 显示数字链接数
                 Dim StartPage,EndPage ' 定义当前页, 开始页, 结束页
                 StartPage=(cPageNo/NaviLength)*NaviLength+1  '为开始页赋值
                
             if pageview=1 then '判断是否首页, 如果是首页不添加链接,反之添加.
                 Response.Write "<font color="&visitedlinkcolor&">"&toF_&"</font> "
             Else  
                 Response.Write "<a href="&url&"1>"&toF_&"</a> "
             End If   
            
             If (cPageNo Mod NaviLength)=0 Then StartPage=StartPage-NaviLength   
                 EndPage=StartPage+NaviLength-1                  
             If EndPage>tPageCount Then EndPage=tPageCount   
    
             If StartPage>1 Then '向后移动一分页, 十页为一分页, 并且以 1, 11, 21... 为每页的开始篇数
                 Response.Write "<a href="&url&(cPageNo-(cPageNo mod 10)-NaviLength+1)&"#anchor>"&toP10_&"</a> "  
             Else  
                 Response.Write "<font color="&visitedlinkcolor&">"&toP10_&"</font> "  
             End If  
    
             If pageview <> 1 and pageview <>0 Then '后移一页
                 Response.Write "<a href="&url&(pageview-1)&"#anchor>"&toP1_&"</a> "  
             Else  
                 Response.Write "<font color="&visitedlinkcolor&">"&toP1_&"</font> "  
             End If  
    
             For startbynum=StartPage To EndPage  
                 If startbynum=cPageNo Then  
                     Response.Write "<b class=gray>"&startbynum&"</b>"  
                 Else  
                     Response.Write "<a href="&url&startbynum&"#anchor>" &startbynum& "</a>"  
                 End If  
                 If startbynum<>tPageCount Then Response.Write " " 
             Next  
    
             If pageview <> rs.PageCount and pageview <>0 Then '前移一页
                 Response.Write " <a href="&url&(pageview+1)&"#anchor>"&toN1_&"</a> "  
             Else  
                 Response.Write "<font color="&visitedlinkcolor&">"&toN1_&"</font> "  
             End If  
    
             If EndPage<tpagecount Then  '向前移动一分页, 十页为一分页, 并且以 1, 11, 21 为每页的开始篇数
                 Response.Write " <a href="&url&(cPageNo-(cPageNo mod 10)+NaviLength+1)&"#anchor>"&toN10_&"</a> "  
             Else  
                 Response.Write " <font color=#CCCCCC>"&toN10_&"</font> "  
             End If  
    
             if  rs.PageCount<>pageview then '判断是否尾页
                 Response.Write "<a href="&url&rs.PageCount&"#anchor>"&toL_&"</a>"  
             Else  
                 Response.Write "<font color="&visitedlinkcolor&">"&toL_&"</font>" 
             End If  
            
             response.write " 转到:<input TYPE='text' NAME=pageview class=jumpinput VALUE='' onMouseMove='this.focus();this.select();'>"
            
                     '页面信息
                     response.Write b_&sp2_&repeatnum&"篇/页"&sp2_&cPageNo&"/"&tPageCount&"页"&sp2_&"共 "&rrc_&"篇"
     elseif (not rs.eof or not rs.bof) and rrc_<=repeatnum then 
             response.write "<div class=font12px>共 "&rrc_&"篇</div>"
     end if
end function

VBscript和javascript区别以及在哪里该用谁?

在很多论坛中看到关于VBscript和javascript到底应该使用哪个,哪个比较好的问题?  今天我来谈谈我的看法:  服务器端:  大家知道ASP支持这两中脚本语言,也就是在服...
  • Chair_
  • Chair_
  • 2014年10月31日 15:30
  • 1408

【ASP】UTF-8编码的vbscript页面,调试信息的乱码问题

在被UTF-8编码的vbscript页面,在写程序的过程中,不小心写错的话,在页面的输出信息是乱码的,如下图所示: 让人无法得知错误的原因。 毕竟在vbscript最初发展的时候,UTF-...
  • yongh701
  • yongh701
  • 2016年01月18日 20:18
  • 2308

VBScript例子程序

VBS基本语法介绍W3CSchool工作中遇到的问题,项目组长给了一个Excel,让分析其中包含的字符含义,由于每页条数太多,导致看不出来要分析的字符在一长串字符中的位置。于是想把其中要注意的字符标注...
  • slaory
  • slaory
  • 2015年07月08日 20:54
  • 156

asp购物车源码

无标题文档 a{text-decoration:none;} td,div{font-size:12px}
  • quweiie
  • quweiie
  • 2014年05月18日 13:27
  • 3482

【ASP】数据库查询的内容分页显示

对于大数据的查询,你不可以一次性地把所有数据中显示出来, 比如一张学生表上面有一百多号人, 那么在页面中就应该一次显示10人左右, 提供翻页功能给用户进行翻阅,不要一次性显示100多号人。 翻页系统是...
  • yongh701
  • yongh701
  • 2014年11月12日 10:23
  • 3944

【ASP】多张图片分页显示

图片翻页在一些漫画、电子书网站中同样起着中流砥柱的作用 反正网页编写的核心就是一页中不能出现太多内容。...
  • yongh701
  • yongh701
  • 2014年11月12日 15:44
  • 1729

VBScript日期函数处理

VBScript日期函数处理 名称 语法 功能 例句 CDate CDate(date) 返回date类型...
  • king201210
  • king201210
  • 2013年08月28日 14:39
  • 241

【ASP】页面引用与过程调用

ASP,也就是vbscript的过程与VB的完全一模一样。分两种,一种是无返回值的Sub过程、一种是有返回值Function。 你不介意的话,完全可以将其理解为其它编程语言的,有返回值与无返回值的函...
  • yongh701
  • yongh701
  • 2016年01月14日 20:57
  • 1261

Asp以及VBScript 的学习内容和经验

asp的学习 第一天 --------------------------- VBScript 变量声明是 dim 调用变量要加上& 弹出语句是msgbox 数组是dim a(9)数组是加...
  • zhongyuchuan147
  • zhongyuchuan147
  • 2016年06月06日 12:23
  • 243

让Asp.NET的DataGrid可排序、可选择、可分页

让Asp.NET的DataGrid可排序、可选择、可分页 DataGrid是Asp.NET中的一个重要的控件,经常我们都将DataGrid做成可分页的和可排序的,有时还需要加上选择功能。这些都是经常...
  • u014440209
  • u014440209
  • 2014年05月09日 20:06
  • 847
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP VBScript 分页函数 by Stabx, 最终版 2006-5-22
举报原因:
原因补充:

(最多只允许输入30个字)