在大型的ASP项目中,很多的页面都涉及到翻页功能。如果每个页面都写一个翻页的程序的话,这样的工作即降低了工作效率,也不利于工程的模块化,不能使代码重用。因此,把翻页这样的功能模块化是很有必要的。
设计方法:
1、调用该模块时,只需要传递记录集和每页显示的记录的条数;
2、可以点击链接进行翻页,也可以直接输入页码,回车后翻页;
3、不要考虑文件名,程序的每次翻页都能在当前页面。
想清楚了上面3个问题,我们的公共翻页模块就可以动手了。
<%
'+++++++++++++++++++++++++++++++++++++
'◆模块名称:公共翻页模块
'◆文件名:TurnPage.asp
'◆传入参数:Rs_tmp(记录集),PageSize(每页显示的记录条数)
'◆输出:记录集翻页显示功能
'+++++++++++++++++++++++++++++++++++++
'
SubTurnPage(ByRefRs_tmp,PageSize)'Rs_tmp记录集;PageSize每页显示的记录条数;
DimTotalPage'总页数
DimPageNo'当前显示的是第几页
DimRecordCount'总记录条数
Rs_tmp.PageSize=PageSize
RecordCount=Rs_tmp.RecordCount
TotalPage=INT(RecordCount/PageSize*-1)*-1
PageNo=Request.QueryString("PageNo")
'直接输入页数跳转;
IfRequest.Form("PageNo")<>""ThenPageNo=Request.Form("PageNo")
'如果没有选择第几页,则默认显示第一页;
IfPageNo=""thenPageNo=1
IfRecordCount<>0then
Rs_tmp.AbsolutePage=PageNo
EndIf
'获取当前文件名,使得每次翻页都在当前页面进行;
DimfileName,postion
fileName=Request.ServerVariables("script_name")
postion=InstrRev(fileName,"/")+1
'取得当前的文件名称,使翻页的链接指向当前文件;
fileName=Mid(fileName,postion)
%>
<tableborder=0width='100%'>
<tr>
<tdalign=left>总页数:<fontcolor=#ff3333><%=TotalPage%></font>页
当前第<fontcolor=#ff3333><%=PageNo%></font>页</td>
<tdalign="right">
<%IfRecordCount=0orTotalPage=1Then
Response.Write"首页|前页|后页|末页"
Else%>
<ahref="<%=fileName%>?PageNo=1">首页|</a>