怎样做这种分页效果:
我做了一个,但是全部页都显示出来了,好在只有18页,不会很难看.
如果分页有上百页,在一个asp中显示那么多页的连接是很难看的.
怎么可以做出只显示10页,但是当我按第10页时候,就切换到10页到19页的选项页.
我从阿里巴巴等很多网站都看到有这样的效果,怎么做出来的.
比如看这里的阿里巴巴:http://list.china.alibaba.com/buyer/offerlist/1613-p10.html?tracelog=PD_search_headex
最好给个完整代码,谢谢.
參考答案:ASP简单分页调用实例,请先保存fy_set.asp和fy_get.asp两个文件,然后调用示例
示例:
将以下代码保存为test.asp
<%
set Conn = server.CreateObject("ADODB.Connection")
Path = Server.MapPath("/")&"/data/xx.mdb"
Conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Path+";Persist Security Info=False")
set rs=server.CreateObject("ADODB.recordset")
sql="select * from table1"
%>
<!--#include virtual="fy_set.asp"-->
<%
while not rs.eof and n>0
response.write rs(0)
response.write rs(1)
response.write "<br>"
n = n - 1
rs.movenext
wend
%>
<!--#include virtual="fy_get.asp"-->
将以下代码保存为fy_set.asp
<%
' ========在包含此段代码前您必须准备好以下变量========
' conn -> 数据库连接对象,已经打开
' rs -> 记录集,处于关闭状态
' sql -> SQL语句
' pageSize -> 每页要显示的记录条数,如留空默认为10
' ====================================================
if rs.state=1 then rs.close
rs.open sql, conn, 1, 1
If rs.recordcount=0 Then
Response.Write "<center>当前没有任何记录!</center>"
Response.end
End If
'取得每页显示记录数'
if pagesize="" or (not isnumeric(pagesize)) or pagesize<1 then
pagesize = 10
end if
rs.pagesize = pagesize '定义每页显示的记录数'
recordcount = rs.recordcount '计算总记录数'
pagecount = rs.pagecount '计算一共能分多少页'
'判断当前是第几页'
if request("page")<>"" then
page = cint(request("page"))
if page > pageCount then
page = pageCount
elseif page < 1 then
page = 1
end if
else
page = 1
end if
rs.AbsolutePage = page
n = pagesize
' ====================调用完后请使用如下方法显示数据====================
' 这里写不需要循环显示的数据,如<table>
' while not rs.eof and n>0
' 这里写需要循环显示的数据,如<tr><td>< %=rs(0)% ></td></tr>
' n = n - 1
' rs.movenext
' wend
' 这里写不需要循环显示的数据,如</table>
' ========显示完数据库的内容之后包含fy_get.asp文件,获取页码列表========
%>
将以下代码保存为fy_get.asp
<%
' ========在包含此段代码前您必须先包含fy_set.asp文件,并准备好以下变量========
' url -> 你要转向的地址,包括参数,如test.asp?id=1留空则默认指向本页
' ===========================================================================
rs.close
response.write "<table width='100%' border='0'><tr style='font-size: 9pt'>"
response.write "<td align='center'>总共找到"+cstr(recordcount)+"条记录 当前第"+cstr(page)+"/"+cstr(pagecount)+"页</td>"
if url="" then
url=Request.ServerVariables("URL")+"?page="
else
url=url+"&page="
end if
response.write "<td align='center'>"
if page=1 then
response.write "<font color='#999999'>首页 上一页 </font>"
else
response.write "<a href='"+url+"1'>首页</a> <a href='"+url+cstr(page-1)+"'>上一页</a> "
end if
pre=page-5
if pre<1 then
pre=1
nex=10
else
nex=page+5
end if
if nex>pagecount then
nex=pagecount
end if
for i = pre to nex
if i=page then
response.write "<font color='#FF0000'>["+cstr(i)+"]</font>"
else
response.write "<a href='"+url+cstr(i)+"'>["+cstr(i)+"]</a>"
end if
next
if page=pagecount then
response.write "<font color='#999999'> 下一页 尾页</font>"
else
response.write " <a href='"+url+cstr(page+1)+"'>下一页</a> <a href='"+url+cstr(pagecount)+"'>尾页</a>"
end if
response.write "</td></tr></table>"
%>
呵呵,调用执行test.asp即可实现分页,是不是很简单^_^