ASP 如何控制页面的页码的数量 (页码很多)

2025-03-07 15:08:26
推荐回答(5个)
回答1:

<%
dim rsd,sql
sql="select * from product "
set rsd=server.CreateObject("adodb.recordset")
rsd.open sql,conn,1,1
if rsd.eof and rsd.bof then
response.write "


-------等待中...。"
set rsd=nothing
Response.End
end if
%>
<%
dim currentpage,page_count,Pcount
dim totalrec,endpage
if request("page")="" then
currentPage=1
else
currentPage=cint(request("page"))
end if
perpage=10
rsd.PageSize = perpage
rsd.AbsolutePage=currentpage
page_count=0
totalrec=rsd.recordcount
while (not rsd.eof) and (not page_count = rsd.PageSize)
%>







')"><%=rsd("name")%>
<%=rsd("price1")%> / 浏览<%=rsd("price2")%>次






<%
page_count = page_count + 1
rsd.movenext
wend
call pages()
rsd.close
set rsd=nothing
sub pages()
dim ii,p,n
if totalrec mod perpage=0 then
n= totalrec \ perpage
else
n= totalrec \ perpage+1
end if
if currentpage-1 mod 10=0 then
p=(currentpage-1) \ 10
else
p=(currentpage-1) \ 10
end if
response.write ""&_
""&_
"
"& currentPage &"页/共"& n &"页, 每页"& rsd.PageSize &"条, 共"& totalrec &"条 "
if currentPage=1 then
response.write "<< "
else
response.write "<< "
end if
if p*10>0 then response.write "< "
response.write ""
for ii=p*10+1 to P*10+10
if ii=currentPage then
response.write ""+Cstr(ii)+" "
else
response.write ""+Cstr(ii)+" "
end if
if ii=n then exit for
'p=p+1
next
response.write "
"
if ii> "
if currentPage=n then
response.write "> "
else
response.write ">> "
end if
response.write "
"
end sub
%>

回答2:

教你个方法,
假设当前是第五十页,而你总共只想显示11号页面链接:
先检查当前页,再检查当前页减去五是否小于一,再检查当前页加上五是否大于最大页数。如果都满足,就直接显示四十五至五十五页
如果小于一,则显示一到十页;
如果大于最大页,则显示最大页减十至最大页
搞定咯
^_^

回答3:

好了,测试下

lCur '当前页面号
lPgCT=rs.PageCount '页面总数
lDispNum =10 '页面显示中每页显示的页码连接的数量
strUrl=""

lPre=(lCur \ lDispNum-1) * lDispNum
lNext=(lCur \ lDispNum+1) * lDsipNum
if lPre>0 then
strUrl="前" & CStr(lDispNum) & "页" & vbCrLf
end if
for lLpV=1 to lDispNum
if lPre+lDispNum+lLpV<> lCur then
strUrl=strUrl & "" & CStr(lPre+lDispNum+lLpV) & "" & vbCrLf
else
strUrl=strUrl & CStr(lPre+lDispNum+lLpV) & vbCrLf
end if
Next
if lNextstrUrl=strUrl & "后" & CStr(lDispNum) & "页"
end if

response.write strUrl 'strUrl就是页面显示的连接串

回答4:

帮你定制了一个,不知是否满意


<%
TotalPage=100 '总页数
CurrentPage=Trim(Request.QueryString("page")) '当前页
searchStr=Trim(Request.QueryString("search")) '搜索字串
Pages = Array(1,TotalPage)

If not isNumeric(CurrentPage) or isEmpty(CurrentPage) then '第一次进入页面时,默认当前页为1
CurrentPage=1
end if
call SetPage(CurrentPage,TotalPage)
Response.Write("

共"&TotalPage&"页 第"&CurrentPage&"页   ")
For i=Pages(0) To Pages(1)
Response.Write(""&i&" ")
Next

Response.Write("
")
'根据当前页和总页数确定起止页数,分别存放在Pages(0)和Pages(1)中
sub SetPage(CPage,TPage)
IF TPage>10 Then
IF TPage-CPage<5 Then
BeginPage=TPage-9
Else
BeginPage=CPage-4
End IF

IF BeginPage<1 Then
Pages(0)=1
Else
Pages(0)=BeginPage
End IF
IF CPage<5 Then
EndPage=Pages(0)+9
Else
EndPage=CPage+5
End IF
IF EndPage>TPage Then
Pages(1)=TPage
Else
Pages(1)=EndPage
End IF
End IF
End sub
%>

回答5:

http://mis-algoritmos.com/2007/03/16/some-styles-for-your-pagination/
24款实用的翻页页码CSS代码