有谁可以看到这个循环有什么问题?我不是一个冷血开发者,但我正在为我们缺席的开发人员做点什么。我试图让循环在10次迭代后停止,但它没有发生。我使用的CMS是Mura。感谢。
<cfset limit = 1>
<cfloop condition="iterator.hasNext()">
<cfif limit LTE 10>
<cfoutput>
<cfset item = iterator.next()>
<tr>
<td>#item.getId()#</td>
<td>#item.getTitle()#</td>
</tr>
</cfoutput>
</cfif>
<cfset limit = limit + 1>
</cfloop>
答案 0 :(得分:8)
虽然Ben的答案可行,但最好的选择是告诉Mura迭代器在开始循环之前要做多少次迭代。
<cfset iterator.setNextN(10) />
<cfloop condition="iterator.hasNext()">
<cfset item = iterator.next()>
<cfoutput>
<tr>
<td>#item.getId()#</td>
<td>#item.getTitle()#</td>
</tr>
</cfoutput>
</cfloop>
通常默认为10,因此在您的设置或代码中的某处必须将其设置为更多。
答案 1 :(得分:3)
我只是检查GTE 10的限制并使用CFBREAK提前终止循环。
<cfset limit = 0>
<cfloop condition="iterator.hasNext()">
<cfoutput>
<cfset item = iterator.next()>
<tr>
<td>#item.getId()#</td>
<td>#item.getTitle()#</td>
</tr>
</cfoutput>
<cfset limit++>
<cfif limit GTE 10>
<cfbreak>
</cfif>
</cfloop>
答案 2 :(得分:0)
<cfloop>
还有另一种选择:
<cfloop from="1" to="10" index="ii">
<cfif iterator.hasNext()>
<cfset item = iterator.next() />
<cfoutput>
<tr>
<td>#item.getId()#</td>
<td>#item.getTitle()#</td>
</tr>
</cfoutput>
<cfelse>
<cfbreak />
</cfif>
</cfloop>