2

谁能看到这个循环有什么问题?我不是冷融合开发人员,但我正在为我们缺席的开发人员做一些事情。我试图让循环在 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>
4

3 回答 3

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,因此在您的设置或代码中的某处必须将其设置为更多。

于 2012-09-06T12:19:42.643 回答
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>
于 2012-09-06T08:07:50.183 回答
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>
于 2012-09-06T12:34:35.017 回答