2016-12-27 77 views
1

我正在使用cfloop中的很多項目。我想削減這一點,並添加分頁。無論如何,我的cfloop會將陣列限制在前10位?Coldfusion將cfloop限制爲10

<cfloop array="#qryItems#" index="index"> 

我試圖把它變成沒有運氣和其他一些東西的條件循環。我有一段時間沒有碰過coldfusion,並且有點生鏽。谷歌沒有幫助哈哈

我已經試過

<cfloop from="1" to="10" array="#qryItems#" index="index"> 

,並試圖MAX_ROWS

<cfloop maxrows="10" array="#qryItems#" index="index"> 
每次我得到錯誤信息

「屬性驗證錯誤標籤CFLOOP

。 「

+0

您可以用'cfbreak' –

+0

@Lashane它在CFOUTPUT這樣一個非常大的數據塊的代碼,我試圖避免對其進行編輯,但我會嘗試任何事情。 – zazvorniki

+1

而不是將循環限制爲10次迭代,爲什麼不編輯定義數組的東西只返回10個元素?如果它是由查詢定義的,則通過在數據庫中執行分頁並僅返回請求的頁面記錄,可以獲得更好的性能。 –

回答

2
<cfloop from="1" to="10" index="index"> 
    <!--- Then do your business with array elements qryItems[index], that is, with qryItems[1], qryItems[2],..., qryItems[10] ---> 
</cfloop> 
+0

我試過這個。我剛收到錯誤「 標籤CFLOOP的屬性驗證錯誤。」 – zazvorniki

+0

@zazvorniki您一定有其他錯誤,因爲這應該工作。如果您發佈您嘗試的代碼,我們可能會指出問題所在。只需[編輯您的原始問題](http://stackoverflow.com/posts/41350595/edit)並在其中添加代碼。 –

+0

@ Miguel-F我沒有改變代碼中的其他任何東西,代碼已經穩定了一年多了。我張貼在我試過的代碼上面。 – zazvorniki

1

cfloop的屬性沒有組合可以實現您的期望。正如BKBK所建議的那樣,您需要使用from/to循環來輸出選定的一組記錄。如果我正確理解你的要求,我會用新的索引變量更新cfloop,然後通過引用數組元素來設置舊變量。

下面兩個cfloops輸出相同的數據,第二個只顯示分頁範圍內的記錄。

<cfset qryItems = [1,2,3,4,5,6,7,8,9,10,'a','b','c','d'] /> 
<cfoutput> 
    <!--- Current loop: Outputs all records ---> 
    <cfloop array="#qryItems#" index="index"> 
     #index# 
    </cfloop> 
    <cfset paginationStart = 1 /> 
    <cfset paginationEnd = 10 /> 
    <!--- Only the range of of records requested ---> 
    <cfloop from="#paginationStart#" to="#paginationEnd#" index="indexNumber"> 
     <cfset index = qryItems[indexNumber] /> 
     <!--- code remain the same ---> 
     #index# 
    </cfloop> 
</cfoutput> 
+0

是的,儘管我認爲他們實際上希望'from/to'是動態的,所以可以使用分頁代碼顯示元素X到Y,而不是始終顯示前10個元素。 [實施例](http://trycf.com/gist/1833166b313d7602c2fbf991a02fd431/acf2016?theme=monokai)。 – Leigh

+1

Thanks @Leigh我已經走了,並更新了我的示例,以便像在您的示例中那樣包含分頁變量。 – Twillen