Asp classic 经典ASP分页
我使用以下代码显示经典asp+Mysql中记录集的分页:Asp classic 经典ASP分页,asp-classic,pagination,Asp Classic,Pagination,我使用以下代码显示经典asp+Mysql中记录集的分页: <ul class="pagination"> <% IF Cint(PageNo) > 1 then %> <li><a rel="1" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="1">Prime</a></li> <li
<ul class="pagination">
<% IF Cint(PageNo) > 1 then %>
<li><a rel="1" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="1">Prime</a></li>
<li><a rel="<%=PageNo-1%>" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="<%=PageNo-1%>"><</a></li>
<% End IF%>
<% For intID=1 To TotalPage%>
<% if intID=Cint(PageNo) Then%>
<li><a href="" class="selected"><%=intID%></a></li>
<%Else%>
<li><a rel="<%=intID%>" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="<%=intID%>"><%=intID%></a></li>
<%End IF%>
<%Next%>
<% IF Cint(PageNo) < TotalPage Then %>
<li><a rel="<%=PageNo+1%>" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="<%=PageNo+1%>">></a></li>
<li><a rel="<%=TotalPage%>" href="#" data-topic="<%=Request.QueryString("TOPIC_ID")%>" data-page="<%=TotalPage%>">Ultime</a></li>
<% End IF%>
</ul>
1那么%>
但是如果我有很多页面结果,它会显示一个长长的数字行。。。。怎么能在换页时只显示5页,然后显示
像这样:
第一个<12345>最后一个
如果我点击5
第一次<5 6 7 8 9>最后一次
等等。如果您想保留一些其他查询字符串参数,此代码也可以使用。它删除页面值,添加新的页面值,并构建页面控制html 它使用Twitter引导样式: 用法:
Response.Write PagingControl(10, 30, "?field-keywords=whatever&page=7")
代码:
公共函数RemoveEmptyQueryString参数(strQueryString)
如果IsNullOrEmpty(strQueryString),则退出函数
Dim strNewQueryString:strNewQueryString=“”
strQueryString=Replace(strQueryString,“&;”、“&”)
strQueryString=Replace(strQueryString,“?”,“&”)
Dim arrQueryString:arrQueryString=Split(strQueryString,“&”)
对于i=0到UBound(arrQueryString)
strTempParameter=Left(arrQueryString(i),Instr(arrQueryString(i)&“=”,“=”)-1)
strTempParameterValue=Right(arrQueryString(i),Len(arrQueryString(i))-InstrRev(arrQueryString(i),“=”)
如果不是IsNullOrEmpty(strTempParameterValue),则
strNewQueryString=strNewQueryString&&arrQueryString(i)
如果结束
下一个
如果InStr(strNewQueryString,&“)=1,则
strNewQueryString=“?”&右(strNewQueryString,Len(strNewQueryString)-1)
如果结束
strNewQueryString=Replace(strNewQueryString,&,“&;”)
消除棱纹
设置arrQueryString=Nothing
RemoveEmptyQueryString参数=修剪(strNewQueryString)
端函数
公共函数addQueryString参数(ByVal strQueryString、ByVal strParameter、ByVal strValue)
Dim strNewQueryString:strNewQueryString=“”
strNewQueryString=Replace(strQueryString,“&;”、“&”)
strNewQueryString=替换(strNewQueryString,“?”,“&”)
strNewQueryString=strNewQueryString&“&”和strParameter&“=”和strValue
如果InStr(strNewQueryString,&“)=1,则
strNewQueryString=“?”&右(strNewQueryString,Len(strNewQueryString)-1)
如果结束
strNewQueryString=Replace(strNewQueryString,&,“&;”)
AddQueryString参数=修剪(strNewQueryString)
端函数
公用函数分页控件(ByVal intPage、ByVal intPageCount、ByVal strQueryString)
如果intPageCount为1,则
strQueryStringPaging=AddQueryStringParameter(strQueryString,“第页”,“1”)
strHtml=strHtml&“”
strQueryStringPaging=AddQueryStringParameter(strQueryString,“page”,CInt(intPage-1))
strHtml=strHtml&“”
其他的
strHtml=strHtml&“禁用”>”和_
“”
如果结束
Dim intPagesToShow:intPagesToShow=10
如果intPageCount>=intPagesToShow,则
如果Cint(intPage)>Int(intPagesToShow/2),则
如果Cint(intPage)>(intPageCount Int(intPagesToShow/2)),则
intStart=intPageCount intPagesToShow
intPageCount=intPageCount
其他的
intStart=intPage Int(intPagesToShow/2)
intential=intPage+Int(intPagesToShow/2)
如果结束
其他的
intStart=1
intential=intPagesToShow
如果结束
其他的
intStart=1
intPageCount=intPageCount
如果结束
如果intStart=0,则
intStart=1
如果结束
因为我开始打算
如果Cint(intPage)=i,则
strHtml=strHtml&“”
其他的
strQueryStringPaging=AddQueryStringParameter(strQueryString,“page”,Cint(i))
strHtml=strHtml&“”
如果结束
下一个
如果cInt(intPage)”
strQueryStringPaging=AddQueryStringParameter(strQueryString,“page”,Cint(intPageCount))
strHtml=strHtml&“”
其他的
strHtml=strHtml&“禁用”>”和_
“”
如果结束
strHtml=strHtml&“”
分页控制=微调(strHtml)
端函数
我需要ASP中的模拟解决方案。
我找不到任何有用的东西,所以我自己做了一些东西
我通常只使用PHP编程,但在我制作这个程序的情况下,这是不可能的。
因此,如果我的代码有点邋遢,请随意改进;)
我设计的一个小功能:
<%
page = cInt(Request.QueryString("pg"))
pages = cInt(number of pages)
if page <1 then page = 1
if page > pages then page = pages
Function paginationHTML(page, lastPage, URL)
if page >1 then
paginationHTML = "<a href=""" & URL & page-1 & """>prev</a>"
paginationHTML = paginationHTML & "<a href=""" & URL & "1"">1</a>"
end if
if page >2 then
paginationHTML = paginationHTML & "<a>...</a>"
end if
if page >0 then
paginationHTML = paginationHTML & "<a href=""" & URL & page & """ class='jp-current'>"& page &"</a>"
end if
if lastPage >2 then
if page < lastPage-1 then
paginationHTML = paginationHTML & "<a>...</a>"
end if
end if
if page < lastPage then
paginationHTML = paginationHTML & "<a href=""" & URL & lastPage & """>"&lastPage&"</a>"
paginationHTML = paginationHTML & "<a href=""" & URL & page+1 & """>next</a>"
end if
End Function
%>
1那么
分页HTML=“”
分页HTML=分页HTML&“”
如果结束
如果页面>2,则
分页HTML=分页HTML&“”
如果结束
如果lastPage>2,则
如果第页<最后一页-1,则
分页HTML=分页HTML&“”
分页HTML=分页HTML&“”
如果结束
端函数
%>
像这样使用:
<%=paginationHTML(page,pages,"?pg=")%>
@johnathan joosten-如何使用此代码以使分页启动1。。此时,分页从0?开始。。Cheers我更改了代码,使其不显示第0页。只有在没有页面的情况下,它才应该给出第0页。希望这个小小的改进能帮助你。
<%=paginationHTML(page,pages,"?pg=")%>