请ASP高手帮我改改这个分页代码

来源:百度知道 编辑:UC知道 时间:2024/05/22 03:47:14
本人菜鸟,朋友给我弄了这个代码:

<%set rs=server.CreateObject("adodb.recordset")
sql = "select * from news where bigclassid="&ssid&" and uid="&uid&" order by id desc"
rs.open sql,conn,1,1
if not rs.eof then
rs.PageSize=10
page=request("page")
if page=0 or page="" then
page=1
end if
page=cint(page)
pages=rs.pagecount
if page > pages then
page=pages
end if
rs.AbsolutePage=page
mmm=rs.recordcount
for j=1 to rs.PageSize
%>

<table width="90%" height="100" border="0" cellpadding="5" cellspacing="0">
<tr align="left" valign="top">
<td width="18%"

只修改了显示页面部分,上一页和下一页的显示不变。其他地方如果有什么问题请自己调节,代码是自己想的,以前也没有按照这样的要求写过,如果还有什么错误,请自己调节。也可以按照我给的思路自己写

思路如下:
1、如果总页面大于7就按原先的方式显示,不需要显示“...”
2、如果当前页面大于7分两种情况
A、是当前页面否大于4,如果当前页面大于4,这个时候需要显示“...”先显示出 1 , 再显示“...”接着显示当前页面的前两页;如果当前页面小于4,用一个循环显示出当前页面前面的页码。
B、总页面减去当前页面是否大于3,如果大于3就需要显示“...” 先显示出当前页面后面的两页 PAGE+1,PAGE+2。 再显示“...”接着是最后一页

另外还要判断当前页面是否是第一页和最后一页。

<%
if rs.pagecount<= 7 then '总页面小于7,不需要显示“...”

for j=1 to rs.pagecount
if page=j then
response.Write("[<a href=news.asp?page="&j&"&i="&i&"&sid="&sid&"&uid="&uid&"&area=" &area&" class=red>"&j&"</a>] ")
else
response.Write("[<a href=news.asp?page="&j&"&i="&i&"&sid="&sid&"&uid="&uid&"&area="&area&" class=black>"&j&"</a>] ")
end if
n