【 tulaoshi.com - ASP 】
                             
                             在大型的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&