在大型的ASP项目中,很多的页面都涉及到翻页功能。如果每个页面都写一个翻页的程序的话,这样的工作即降低了工作效率,也不利于工程的模块化,不能使代码重用。因此,把翻页这样的功能模块化是很有必要的。  
设计方法: 
1、调用该模块时,只需要传递记录集和每页显示的记录的条数; 
2、可以点击链接进行翻页,也可以直接输入页码,回车后翻页; 
3、不要考虑文件名,程序的每次翻页都能在当前页面。 

想清楚了上面3个问题,我们的公共翻页模块就可以动手了。 

<% 
'+++++++++++++++++++++++++++++++++++++ 
'◆模块名称: 公共翻页模块 
'◆文 件 名: TurnPage.asp 
'◆传入参数: Rs_tmp (记录集), PageSize (每页显示的记录条数) 
'◆输 出: 记录集翻页显示功能 
'+++++++++++++++++++++++++++++++++++++ 

Sub TurnPage(ByRef Rs_tmp,PageSize) 'Rs_tmp 记录集 ; PageSize 每页显示的记录条数; 
Dim TotalPage '总页数 
Dim PageNo '当前显示的是第几页 
Dim RecordCount '总记录条数 
Rs_tmp.PageSize = PageSize 
RecordCount = Rs_tmp.RecordCount 
TotalPage = INT(RecordCount / PageSize * -1)*-1 
PageNo = Request.QueryString ("PageNo") 
'直接输入页数跳转; 
If Request.Form("PageNo")<>"" Then PageNo = Request.Form("PageNo") 
'如果没有选择第几页,则默认显示第一页; 
If PageNo = "" then PageNo = 1  
If RecordCount <> 0 then 
Rs_tmp.AbsolutePage = PageNo 
End If 

'获取当前文件名,使得每次翻页都在当前页面进行; 
Dim fileName,postion 
fileName = Request.ServerVariables("script_name") 
postion = InstrRev(fileName,"/")+1 
'取得当前的文件名称,使翻页的链接指向当前文件; 
fileName = Mid(fileName,postion)  
%> 
<table border=0 width='100%'>  
<tr>  
<td align=left> 总页数:<font color=#ff3333><%=TotalPage%></font>页 
当前第<font color=#ff3333><%=PageNo%></font>页</td> 
<td align="right">  
<%If RecordCount = 0 or TotalPage = 1 Then  
Response.Write "首页|前页|后页|末页" 
Else%> 
<a href="<%=fileName%>?PageNo=1">首页|</a> 
<%If PageNo - 1 = 0 Then 
Response.Write "前页|" 
Else%> 
<a href="<%=fileName%>?PageNo=<%=PageNo-1%>">前页|</a> 
<%End If 

If PageNo+1 > TotalPage Then 
Response.Write "后页|" 
Else%> 
<a href="<%=fileName%>?PageNo=<%=PageNo+1%>">后页|</a> 
<%End If%> 

<a href="<%=fileName%>?PageNo=<%=TotalPage%>">末页</a> 
<%End If%></td> 
<td width=95>转到第 
<%If TotalPage = 1 Then%> 
<input type=text name=PageNo size=3 readonly disabled style="background:#d3d3d3"> 
<%Else%> 
<input type=text name=PageNo size=3 value="" title=请输入页号,然后回车> 
<%End If%>页 
</td> 
</tr> 
</table> 
<%End Sub%> 

当然,大家可以把翻页的链接做成图片按钮,这样的话也面就更加美观了。 

调用方法: 
1、在程序开始或要使用翻页的地方包含翻页模块文件; 
2、定义变量:RowCount,每页显示的记录条数 
3、调用翻页过程:Call TurnPage(记录集,RowCount) 
4、在Do While 循环输出记录集的条件中加上" RowCount > 0 " 条件 
5、在循环结束 "Loop前" 加上: RowCount = RowCount - 1 

'----------------------------------------------------- 
调用范例: 
文件名:News.asp 

<% 
Dim Conn,Rs_News 
Set Conn = server.CreateObject("ADODB.CONNECTION") 
Conn.Open "cpm","cpm","cpm" 

Dim Sql 
Sql = "Select * from News" 
Set Rs_News = Server.CreateObject("ADODB.RECORDSET") 
Rs_News.Open Sql,Conn,1,3 '获取的记录集 

'公共翻页模块开始%> 
<!--#include file=../Public/TurnPage.asp--> 
<% 
Dim RowCount 
RowCount = 10 '每页显示的记录条数 
Call TurnPage(Rs_News,RowCount)  
'公共翻页模块结束%>  

<table width=100%> 
<tr> 
<td>新闻编号</td> 
<td>新闻标题</td> 
<td>发布日期</td> 
<tr> 
<% 
If Not Rs_News.eof 
Do while Not Rs_News.eof and RowCount>0 
%> 
<tr> 
<td><%=Rs_News("ID")%></td> 
<td><%=Rs_News("Name")%></td> 
<td><%=Rs_News("Date")%></td> 
<tr> 
<% 
RowCount = RowCount - 1 
Rs_News.MoveNext 
Loop 
End If 
%> 



修正: 
<% 
If Not Rs_News.eof then 
Do while Not Rs_News.eof and RowCount>0 
%> 

而那个公共模块缺<form>,改后: 
<% 
Sub TurnPage(ByRef Rs_tmp,PageSize) 'Rs_tmp 记录集 ; PageSize 每页显示的记录条数; 
Dim TotalPage '总页数 
Dim PageNo '当前显示的是第几页 
Dim RecordCount '总记录条数 
Rs_tmp.PageSize = PageSize 
RecordCount = Rs_tmp.RecordCount 
TotalPage = INT(RecordCount / PageSize * -1)*-1 
PageNo = Request.QueryString ("PageNo") 
'直接输入页数跳转; 
If Request.Form("PageNo")<>"" Then PageNo = Request.Form("PageNo") 
'如果没有选择第几页,则默认显示第一页; 
If PageNo = "" then PageNo = 1  
If RecordCount <> 0 then 
Rs_tmp.AbsolutePage = PageNo 
End If 
'获取当前文件名,使得每次翻页都在当前页面进行; 
Dim fileName,postion 
fileName = Request.ServerVariables("script_name") 
postion = InstrRev(fileName,"/")+1 
fileName = Mid(fileName,postion)  
%> 
<table border=0 width='100%'>  
<tr>  
<td width="258" align=left> 总页数:<font color=#ff3333><%=TotalPage%></font>页  
当前第<font color=#ff3333><%=PageNo%></font>页 总共<%=RecordCount%>条 </td> 
<td width="308" align="right"> <div align="center">  
<%If RecordCount = 0 or TotalPage = 1 Then  
Response.Write "首页|前页|后页|末页" 
Else%> 
<a href="<%=fileName%>?PageNo=1">首页|</a>  
<%If PageNo - 1 = 0 Then 
Response.Write "前页|" 
Else%> 
<a href="<%=fileName%>?PageNo=<%=PageNo-1%>">前页|</a>  
<%End If 

If PageNo+1 > TotalPage Then 
Response.Write "后页|" 
Else%> 
<a href="<%=fileName%>?PageNo=<%=PageNo+1%>">后页|</a>  
<%End If%> 
<a href="<%=fileName%>?PageNo=<%=TotalPage%>">末页</a>  
<%End If%> 
</div></td> 
<td width=189><form name="form1" method="post" action=""> 转到第 <% If TotalPage = 1 Then%> 
<input type=text name=PageNo size=3 readonly disabled style="background:#d3d3d3"> 
<input type="submit" name="Submit" value="Go" disabled style="background:#d3d3d3"> 
<%Else%> 
<input type=text name=PageNo size=3 > 
<input type="submit" name="Submit" value="Go"> 
<%End If%> 
</form> 
页  
</td> 
</tr> 
</table> 
<%End Sub%>
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。