介绍以下函数的用法,一般,如显示新闻内容的ASP文件都要至少收集id 的值,如果你的最终显示的新闻串的值为 s 的话 调用方法就是: <%=kellyPage(s)%> 演示地址: http://www.w2000.com.cn/sweet/doc/show.asp?id=404 此函数功能:显示长文章的页数并显示出当前页的新闻 注:这个函数一看就知道是在服务器端运行的,难免会有效率问题,如果你的服务器不太好的话,可以把这个函数放在客户端处理。。。。 <%Function kellyPage(Str) Str=Replace(Server.Htmlencode(Str),Chr(13),"<br>") Dim p,i,arr,returns,show,tolp,star,endstar Const countbr=20 '每页显示的行数 If Request.QueryString("docp")="" Then p=1 Else p=Cint(Request.QueryString("docp")) If p<1 Then p=1 End If arr=Split(Str,"<br>") returns="" For i=(p-1)*countbr To p*countbr If i>Ubound(arr) Then Exit For returns=returns&arr(i)&"<BR>" Next returns=returns&"<br><br><br><br>" If p>1 Then returns=returns&"<a href="""&Request.ServerVariables("URL")&"?id="&Request.QueryString("id")&"&docp="&(Cint(p)-1)&""">上一页</a> " End If If Ubound(arr) Mod countbr<>0 Then tolp=Ubound(arr)\countbr+1 Else tolp=Ubound(arr)\countbr End If Set arr=Nothing star=1:endstar=1 If p>5 Then star=Cint(p)-5 If Cint(star)<>1 Then returns=returns&".. " End If If Cint(star)+9>tolp Then endstar=tolp Else endstar=Cint(star)+9 End If For i=star To endstar %> <% If i=Cint(p) Then returns=returns&"[<b><font color=red>"&i&"</font></b>] " Else returns=returns&"[<a href="""&Request.ServerVariables("URL")&"?id="&Request.QueryString("id")&"&docp="&i&""">"&i&"</a>] " End If Next If endstar<tolp Then returns=returns&".. " If p<tolp Then returns=returns&"<a href="""&Request.ServerVariables("URL")&"?id="&Request.QueryString("id")&"&docp="&(Cint(p)+1)&""">下一页</a>" End If kellyPage=returns End Function%> |