Adobe ColdFusion 9分页循环问题

时间:2016-02-26 12:23:44

标签: for-loop coldfusion coldfusion-9 coldfusion-10 coldfusion-11

我正在处理一个错误显示分页的应用程序。 这是代码:

  <cfif ...>
     <cfoutput><li class=""><a href="#FP#">First</a></li></cfoutput>
     <cfoutput><li class=""><a href="#link#">Previous</a></li></cfoutput>
  <cfelse>
  </cfif>

  <!--- Start Page Numbers --->
  <cfset totalPages = Ceiling(SmartGuideSearchRet.recordCount / perpage)>
  <cfset whichPage = round((url.start)/perPage + 1)>

  <cfloop index="a" from="1" to="#totalpages#"> //returns total pagination tabs
      <cfoutput>
      <cfset whichPage = round((url.start)/perPage + 1)>
      <cfif pagecount EQ whichPage>
         <li class="active" id="wp"><a href="?start=#pageLink#">#pagecount#</a></li>  
      <cfelse>
        <li id="wp"><a href="?start=#pageLink#">#pagecount#</a></li> 
      </cfif>
     </cfoutput>

     <cfset pageCount = pageCount + 1>
     <cfset pageLink = pageLink + perpage>
  </cfloop>
  <!--- End Page Number ---> 

  <cfif (url.start + perpage - 1) lt SmartGuideSearchRet.recordCount>
     <cfset link = cgi.script_name & "?start=" & (url.start + perpage)>
     <cfset LP = cgi.script_name & "?start=" & (SmartGuideSearchRet.recordCount)>

     <cfoutput><li><a href="#link#">Next</a></li></cfoutput>
     <cfoutput><li><a href="#LP#">Last</a></li></cfoutput>
  <cfelse>
  </cfif>

以下是我的应用程序的输出:

incorrect pagination

这就是我希望我的分页看起来像:

我希望它循环显示总页数,但一次只显示10个分页选项卡,所以从1-10然后10-20 20-30 30-40等...直到达到分页选项卡的总数。

以下是开头应如何显示的图片:

enter image description here

我还是Coldfusion的新手,但我想不出逻辑。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

考虑使用Nathan Strutz的Pagination CFC。它专门为此目的而编写,并附带了许多选项和附件。你还没有提到的功能(包括样式)。

http://www.dopefly.com/projects/pagination/

示例集成(来自网站):

<cfset pagination = createObject("component", "components.Pagination").init() />
<cfset pagination.setQueryToPaginate(myQuery) />
<cfset pagination.setBaseLink("/app/photolist.cfm?year=2007") />
<cfset pagination.setItemsPerPage(25) />
<cfset pagination.setUrlPageIndicator("page") />
<cfset pagination.setShowNumericLinks(true) />

<cfoutput>#pagination.getRenderedHTML()#</cfoutput>

<cfoutput query="myQuery" startrow="#pagination.getStartRow()#" maxrows="#pagination.getMaxRows()#">
<li>#id# - #name#</li>
</cfoutput>

<cfoutput>#pagination.getRenderedHTML()#</cfoutput>