2

Я работаю над приложением, которое неправильно отображает страницы. Вот код:Adobe ColdFusion 9 Проблема с разбиением на страницы

<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, но я просто не могу думать о логике. Любая помощь приветствуется.

+0

пожалуйста, вы можете предоставить код для обработки предыдущей и следующей кнопки? –

+0

Извините, что обновлено – Ren44

+2

Какое устранение неполадок вы до сих пор сделали? Вы демонстрируете, что это не работает (хорошо), но вы не говорите, что пытались что-то исправить? Вы хотя бы проверили все значения переменных, которые вы используете, имеют значения, которые вы ожидаете? Если это слишком много циклов ... подумайте, что может случиться? Тогда * исследуем *. Восстановите свой код, чтобы вывести что-то простое для каждой страницы (например, просто '*'). Получаете ли вы правильное количество звезд? Переработайте код, пока не сделаете это. Теперь выведите номер страницы вместо звезды. Правильно ли эти цифры? Если нет ... почему бы и нет? [и т. д.] –

ответ

2

Рассмотрите возможность использования Направленного ХФУ Натана Струца. Это было написано специально для этой цели и поставляется со многими опциями & функций, о которых вы не упомянули (включая стиль).

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> 
+0

. Я посмотрю на это сегодня. – Ren44

Смежные вопросы