Coldfusion 限制分页列表上的页数

Coldfusion 限制分页列表上的页数,coldfusion,paging,Coldfusion,Paging,我正在改造一个站点的寻呼系统,我遇到了一些简单的问题,我似乎无法解决。我试图一次显示页面(123445),当用户到达第5页时,列表会变为(45678)。我如何使用cfloop实现这一点?以下是我的代码示例: <cfloop from="1" to="#totalPages#" index="i"> <cfoutput><a class="paging" href="?start=#(i*25)-24#">#i#</a></cfoutput&g

我正在改造一个站点的寻呼系统,我遇到了一些简单的问题,我似乎无法解决。我试图一次显示页面(123445),当用户到达第5页时,列表会变为(45678)。我如何使用cfloop实现这一点?以下是我的代码示例:

<cfloop from="1" to="#totalPages#" index="i">
<cfoutput><a class="paging" href="?start=#(i*25)-24#">#i#</a></cfoutput> 
</cfloop>

目前它一次显示了第1-54页。有什么建议吗?

这是我的代码

<cfset curPage = Int(start / 25) + 1>

<cfloop from="1" to="#totalPages#" index="i">
  <cfif i is curPage>
    <div class="page current">#i#</div>
  <cfelse>
    <cfif totalPages lte 5 or i is 1 or i is totalPages or (i gt curPage - 3 and i lt curPage + 3) or ((curPage is 1 or curPage is 2) and i lt 6) >
      <div class="page"><a href="?start=#(i*25)-24#">#i#</a></div>
    <cfelse>
      <cfif i is 2 or i is totalPages - 1>
        <div class="more">...</div>
      </cfif>
    </cfif>
  </cfif>
</cfloop>

#我#
...
这段代码的作用是显示前5页,然后是省略号,然后是最后一页。当你翻阅它时,它将始终显示到第一页和最后一页的链接,加上当前页前后的两页

截图:第1页和第10页

您应该能够轻松地修改它,使其完全按照您想要的方式工作。(我不喜欢所有链接都按照您描述的方式同时更改)

怎么样:

<cfloop from="#url.startpage#" to="#url.startpage+4#" index="i">
  <cfif i LE totalpages>
    <cfoutput><a class="paging" href="?start=#(i*25)-24#">#i#</a></cfoutput> 
  </cfif>
</cfloop>



当然,您需要在url中添加“startpage”,并对其进行适当的操作。因此,您的第一个链接是startpage=1,但最后一个链接是startpage=4(如果我正确理解您的问题)。

有一个很棒的开源分页库可以解决您的问题。因为是我写的,所以我不能说太多关于它的好话。无耻,我知道。无论如何:


看看这些文档,它们非常完整,非常有用。在代码中,打印页码非常简单,只需调用
#pagination.getRenderedHTML()#
。它是非常可定制的,因此您可以更改打印的数字,并可以根据自己的喜好设置输出样式。

这看起来很棒,谢谢。但是我有一个问题,我应该如何定义result和curpage?对不起,我需要清理upI添加的for curpage变量。25应该是您在一页上显示的任意数量的项目。没有理由使用结果变量,我删除了它。