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

王朝asp·作者佚名  2006-05-23
窄屏简体版  字體: |||超大  

标题: 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 : http://blog.csdn.net/btbtd \ http://btbtd.exblog.jp/

'

' 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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航