显示当前十页,前十页,后十页,首页,前页,后页,尾页。 支持附加的条件,如查询的条件也可以附加进来,总之可以分页了。 =========================================如: 前十页 11 12 13 14 15 16 17 18 19 20 后十页 首页 前页 后页 尾页 ============================================= 用两个子过程咔嚓起来了,调用方法很简单,举例如下:
<!--#include file="/inclue/listpages.asp"--> ...... <% myPagesize=10 ...... rs.open sql,conn,1,1 myPages(rs,myPagesize) '----紧接着调用这个 ....... mycondition="&keyword="&keyword '-----如还有关键字这个附加条件,注意开始有个&。 ....... %>
在需要显示分页的地方。用listpages(mycondition)就行了。 显示纪录的时候,就
line=myPagesize do while not rs.eof and line>0 ..... rs.movenext line=line-1 loop ok了。注意可能变量没有定义全哦,我比较懒,很少定义变量。 :D ================================================ 代码如下: <%sub listpages(mycondition) if pages<1 then exit sub end if response.write " 页码:" if p>0 then response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=10&p="&p-1&mycondition&">[上十页]</a> " end if '-------------------下面写出当前十个页码 for i=1 to 10 if (p*10+i)>pages then exit for if currentpage=i then response.write "<a style='color:blue' " else response.write "<a " end if response.write "href="&request.ServerVariables("script_name")&"?currentpage="&i&"&p="&p&mycondition&">["&(p*10+i)&"]</a> " next '--------------------察看下十页的连接 if (p*10+10)<pages then response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=1&p="&p+1&mycondition&">[下十页]</a>" end if '-----------------------------------------------上下页导航 response.write " " if p>0 and currentpage=1 then response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=10&p="&p-1&mycondition&">[上页]</a> " elseif currentpage>1 then response.write "<a href="&request.ServerVariables("script_name")&"?currentpage="¤tpage-1&"&p="&p&mycondition&">[上页]</a> " end if '===上页 if (p*10+currentpage)<pages and currentpage=10 then response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=1&p="&p+1&mycondition&">[下页]</a> " elseif (p*10+currentpage)<pages then response.write "<a href="&request.ServerVariables("script_name")&"?currentpage="¤tpage+1&"&p="&p&mycondition&">[下页]</a> " end if '===下页 if (p*10+currentpage)>1 then response.write "<a href="&request.ServerVariables("script_name")&"?currentpage=1&&p=0"&mycondition&">[首页]</a> " end if '===首页 if (p*10+currentpage)<pages then response.write "<a href="&request.ServerVariables("script_name")&"?currentpage="&((pages-1) mod 10)+1&"&p="&((pages-1)\10)&mycondition&">[尾页]</a> " end if '===尾页 response.write "第<b>"&(p*10+currentpage)&"/"&Pages&"</b>页 共<b>"&Records&"</b>条记录" end sub
sub myPages(myRS,mysize) '------mysize为内部变量(主页面没有定义),myRS为主页面传递过来的RS对象(地址传递) if myRS.eof and myRS.bof then str="没有纪录" if str="" then if mysize="" or NOT IsNumeric(mysize) then mysize=15 end if myRS.PageSize=mysize pages=myRS.pagecount records=myRS.recordcount On Error Resume Next '取得数字 currentPage=request("currentPage") if currentPage="" then currentPage=1 end if currentPage=CInt(currentPage) if Err.Number <> 0 Then currentPage=1 Err.Clear end if if currentPage<1 then currentPage=1 elseIf currentPage>10 then currentPage=10 end if '----------------处理p p=request("p") if p="" then p=0 end if p=CLng(p) if Err.Number <> 0 Then p=0 Err.Clear end if if p<0 then p=0 end if '--判断是否出了页数范围 nowPage=p*10+currentPage if nowPage>pages then p=(pages-1)\10 currentPage=((pages-1) mod 10)+1 end if myRS.absolutepage=p*10+currentPage else currentPage=1 records=0 pages=1 end if end sub
dim pages,records,currentPage,p '--------定义变量,这些变量在主页面中,进行地址传递%>
===========================================
|