ASP VBScript 分页函数 by Stabx, 第三版

原创 2006年05月31日 13:26:00
标题: ASP VBScript 分页函数 by Stabx, 第三版

正文:

QUOTE:

ASP VBScript 分页函数 by Stabx, 第三版

作用: 
翻页导航, 显示数据请另外处理

说明:
简化简化再简化, 只需输入 '''/// call fPageCount(连接名,每页总数,开始数,号码导航链接数) ///'''
详细如: call fPageCount(rs,50,1,10)
 
本版实现了不需输入 URL 就可以自动获取 URL 的功能
文本框翻页功能也实现了智能化, 不需指定 URL, 前提是客户端没关闭 JS (相信不会有太多人跟我一样, 通常浏览网页都关闭 JS, 只在调试时使用)
本版尽可能的没用 联字符(&), 该字符很费时

导航预览:
首页 上十 上一 81 82 83 84 85 86 87 88 89 90 下一 下十 尾页 转到:___
50篇/页 88/831页 共 41503篇

shawl.qiu
2006-5-31

CODE:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' subject    : ASP VBScript 分页函数 by Stabx, 第三版
'
' writer    : Stabx<[email]shawl.qiu@gmail.com[/email]>
'
' blog        : http://blog.csdn.net/btbtd / http://btbtd.exblog.jp/ 
'
' blog/site    : Phoenix.GI - P.GI / / 绿色学院 - Green Institute
'
' date        : 2006-5-31
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'简化简化再简化, 只需输入 '''/// call fPageCount(连接名,每页总数,开始数,号码导航链接数) ///'''
'本版实现了不需输入 URL 就可以自动获取 URL 的功能
'文本框翻页功能也实现了智能化, 不需指定 URL, 前提是客户端没关闭 JS (相信不会有太多人跟我一样, 通常浏览网页都关闭 JS, 只在调试时使用)
'本版尽可能的没用 联字符(&), 该字符很费时
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 使用例子
'sample call '''// call fPageCount(rs,50,1,10) //'''
'sample call '''// call fPageCount(otherRSname,50,1,10) //'''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'参数使用说明
''''''''''''''''''''''''''''''''''''''
'rs                 |     数据库表连接名
'repeatnum            |    每页显示记录总数
'startbynum            |    从多少开始循环显示
'numlink            |    显示数字链接导航数目
'''''''''''''''''''''
'全例: call fPageCount(rs,50,1,10)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
function fPageCount(rs,repeatnum,startbynum,numlink)

    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 '记录总数大于每页总数才显示分页链接
    
             rqq_=request.ServerVariables("QUERY_STRING") '获取 URL 查询串, 并筛选所需
             pv_=request("pageview") '翻页查询字符
         if rqq_="" then
             url="?pageview="
         elseif instr(rqq_,"pageview")<>0 then    
             url="?"&replace(rqq_,"pageview="&pv_,"")&"pageview=" '不要试图把 pageview= 放进 replace 里
         else
             url="?"&replace(rqq_,"&pageview="&pv_,"")&"&pageview=" '同上
         end if
            
             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=""#CCCCCC"">"
                 response.write toF_
                 response.write "</font> "
             Else  
                 Response.Write "<a href="""
                 response.write url
                 response.write "1#anchor"">"
                 response.write toF_
                 response.write "</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="""
                 response.write url
                 response.write (cPageNo-(cPageNo mod 10)-NaviLength+1)
                 response.write "#anchor"">"
                 response.write toP10_
                 response.write "</a> "  
             Else  
                 Response.Write "<font color=""#CCCCCC"">"
                 response.write toP10_
                 response.write "</font> "  
             End If  
    
             If pageview <> 1 and pageview <>0 Then '后移一页
                 Response.Write "<a href="""
                 response.write url
                 response.write (pageview-1)
                 response.write "#anchor"">"
                 response.write toP1_
                 response.write "</a> "  
             Else  
                 Response.Write "<font color=""#CCCCCC"">"
                 response.write toP1_
                 response.write "</font> "  
             End If  
    
             For startbynum=StartPage To EndPage  
                 If startbynum=cPageNo Then  
                     Response.Write "<b class=""gray"">"
                     response.write startbynum
                     response.write "</b> "  
                 Else  
                     Response.Write "<a href="""
                     response.write url
                     response.write startbynum
                     response.write "#anchor"">" 
                     response.write startbynum
                     response.write  "</a> "  
                 End If  
             Next  
    
             If pageview <> rs.PageCount and pageview <>0 Then '前移一页
                 Response.Write " <a href="""
                 response.write url
                 response.write (pageview+1)
                 response.write "#anchor"">"
                 response.write toN1_
                 response.write "</a> "  
             Else  
                 Response.Write "<font color=""#CCCCCC"">"
                 response.write toN1_
                 response.write "</font> "  
             End If  
    
             If EndPage<tpagecount Then  '向前移动一分页, 十页为一分页, 并且以 1, 11, 21 为每页的开始页数
                 Response.Write " <a href="""
                 response.write url
                 response.write (cPageNo-(cPageNo mod 10)+NaviLength+1)
                 response.write "#anchor"">"
                 response.write toN10_
                 response.write "</a> "  
             Else  
                 Response.Write " <font color=""#CCCCCC"">"
                 response.write toN10_
                 response.write "</font> "  
             End If  
    
             if  rs.PageCount<>pageview then '判断是否尾页
                 Response.Write "<a href="""
                 response.write url
                 response.write tpagecount
                 response.write "#anchor"">"
                 response.write toL_
                 response.write "</a>"  
             Else  
                 Response.Write "<font color=""#CCCCCC"">"
                 response.write toL_
                 response.write "</font>" 
             End If  
                 response.write " 转到:<input TYPE=""text"" class=""jumpinput"" onMouseMove=""this.focus();this.select();"" onkeypress=""ckKeyPress(this.value);"" ><br/>"
                 '页面信息
                 response.write repeatnum
                 response.write "篇/页 "
                 response.write cPageNo
                 response.write "/"
                 response.write tPageCount
                 response.write "页 共 "
                 response.write rrc_
                 response.write "篇<script>function ckKeyPress(jumpto){if(window.event.keyCode==13) {window.location.href="""
                 response.write url
                 response.write """+jumpto+""#anchor""}}</script>"
             elseif (not rs.eof or not rs.bof) and rrc_<=repeatnum then 
                 response.write "<div class=font12px>共 "
                 response.write rrc_
                 response.write " 篇</div>"
             end if
end function

《JavaScript高级程序设计 第三版》学习笔记 (十三)高级函数

1.安全的原生类型检验   js的原生类型,可以用typeof判断,但有时会失效。比如typeof array返回的不是Array,而是Object;再比如老版本IE,会将function识别为Ob...

《JavaScript高级程序设计 第三版》学习笔记 (十三)高级函数

一、高级函数 1.安全的原生类型检验   js的原生类型,可以用typeof判断,但有时会失效。比如typeof array返回的不是Array,而是Object;再比如老版本IE,会将f...

C_PlusPlus学习笔记 - 2_函数 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)

C++继承了C的全部语法,函数也是其中之一。 函数是模块划分的基本单位,是对处理对象的一种抽象。 在面向对象程序设计中是对功能的抽象。 调用其他函数的函数叫做主调函数。 被其他函数调用的叫做被调...

inline函数(摘自C++ Primer的第三版)

(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。       inline int min(in...

【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数

本博文主要针对UNP一书中的第六章内容来聊聊I/O复用技术以及其在网络编程中的实现 1. I/O复用技术I/O多路复用是指内核一旦发现进程指定的一个或者多个I/O条件准备就绪,它就通知该进程。I/O复...

《linux命令行与shell脚本编程大全》第三版 - 核心笔记(3/4):函数与图形化脚本

《linux命令行与shell脚本编程大全》 全书4部分: ☆ 【1】linux命令行(1-10章) ☆ 【2】shell脚本编程基础(11-16章) ☆ 【3】高级shell脚本编程(17-23章)...

纠正《Effective C++(第三版)》侯捷译 中文版中,第31条款中原文“最后,不论Handle classes或Interface classes,一旦脱离inline函数都无法...”的误译

感谢slimzhao的博文消除了我的迷惑,博文原文地址为 http://blog.chinaunix.net/uid-53564-id-3259704.html 我在读Effective ...

《JavaScript高级程序设计 第三版》学习笔记 (六) 函数与闭包详解

2014.8.31 一、函数声明 1.函数的声明语法:function funcName(){}。js执行前会把函数声明载入,因此可以在调用之后声明函数,不必向c语言一样先声明,再调用,然...

第五周上机任务---设计三角形类,增加构造函数--第三版V1.0

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生  * All rights reserved. * 文件名称:设计...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP VBScript 分页函数 by Stabx, 第三版
举报原因:
原因补充:

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