以前的分页程序,在翻页时,总是有点不便,比如一个地址有几个参数,那么在写分页时,要写上这些参数,现在用一个函数就可轻松搞定,才不用管它有多少个参数!
function.asp
<%
function HTMLEncode(fString)
if not isnull(fString) then
fString = replace(fString, ">", ">")
fString = replace(fString, "<", "<")
fString = Replace(fString, CHR(32), " ")
fString = Replace(fString, CHR(9), " ")
fString = Replace(fString, CHR(34), """)
fString = Replace(fString, CHR(39), "'")
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10) & CHR(10), "</P><P> ")
fString = Replace(fString, CHR(10), "<BR> ")
HTMLEncode = fString
end if
end function
%>
<%
Sub PageControl(iCount,pagecount,page,table_style,font_style)
'生成上一页下一页链接
Dim query, a, x, temp
action = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("SCRIPT_NAME")
query = Split(Request.ServerVariables("QUERY_STRING"), "&")
For Each x In query
a = Split(x, "=")
If StrComp(a(0), "page", vbTextCompare) <> 0 Then
temp = temp & a(0) & "=" & a(1) & "&"
End If
Next
keyw = Request.Form("keywords")
if keyw<>"" then
temp = "keywords="&keyw&"&"&temp
end if
Response.Write("<table " & Table_style & ">" & vbCrLf )
Response.Write("<form method=get onsubmit=""document.location = '" & action & "?" & temp & "Page='+ this.page.value;return false;""><TR>" & vbCrLf )
Response.Write("<TD align=right>" & vbCrLf )
Response.Write(font_style & vbCrLf )
if page<=1 then
Response.Write ("首页 " & vbCrLf)
Response.Write ("上页 " & vbCrLf)
else
Response.Write("<A HREF=" & action & "?" & temp & "Page=1>首页</A> " & vbCrLf)
Response.Write("<A HREF=" & action & "?" & temp & "Page=" & (Page-1) & ">上页</A> " & vbCrLf)
end if
if page>=pagecount then
Response.Write ("下页 " & vbCrLf)
Response.Write ("尾页 " & vbCrLf)
else
Response.Write("<A HREF=" & action & "?" & temp & "Page=" & (Page+1) & ">下页</A> " & vbCrLf)
Response.Write("<A HREF=" & action & "?" & temp & "Page=" & pagecount & ">尾页</A> " & vbCrLf)
end if
Response.Write(" 页次:" & page & "/" & pageCount & "页" & vbCrLf)
Response.Write(" 共有 " & iCount & " 条信息" & vbCrLf)
Response.Write(" 转到" & "<INPUT class=box TYEP=TEXT NAME=page SIZE=1 Maxlength=5 VALUE=" & page & ">" & "页" & vbCrLf & "<INPUT type=submit style=""font-size: 9pt"" value=GO class=bt>")
Response.Write("</TD>" & vbCrLf )
Response.Write("</TR></form>" & vbCrLf )
Response.Write("</table>" & vbCrLf )
End Sub
%>
page.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>不错的分页</title>
</head>
<!--#include file="conn.asp"-->
<!--#include file="function.asp"-->
<body>
<table width="92%" border="0" align="center" cellpadding="2" cellspacing="0">
<%
sql = "select *from information where classid=8 order by orderid desc,id desc"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,cn,1,1
if (rs.eof or rs.bof) then
Response.Write("<tr><td colspan=6 align=left>暂时没有些类信息</td></tr>")
else
rs.PageSize =14'每页记录条数
iCount=rs.RecordCount '记录总数
iPageSize=rs.PageSize
maxpage=rs.PageCount
page=request("page")
if Not IsNumeric(page) or page="" then
page=1
else
page=cint(page)
end if
if page<1 then
page=1
elseif page>maxpage then
page=maxpage
end if
rs.AbsolutePage=Page
if page=maxpage then
x=iCount-(maxpage-1)*iPageSize
else
x=iPageSize
end if
For i=1 To x
%>
<tr <%if i mod 2=0 then%> bgcolor="#f3f3f3" <%end if%>>
<td width="592" height="24">
<%=rs("project")%>
</td>
<td width="305">
<%=rs("datetime")%>
<%=htmlencode("<font color=red>htmlendcode</font>")%>
</td>
</tr>
<tr>
<td height="5" colspan="2" align="left"><div style="border-top:1px dashed #CCCCCC;"></div></td>
</tr>
<%
rs.movenext
next
Response.Write("<tr bgColor='#ffffff'><td colspan=7>")
call PageControl(iCount,maxpage,page,"border=0 align=right","<p align=right>")
Response.Write("</td></tr>")
end if
rs.close
%>
</table>
</body>
</html>