2

誰かがこのループの何が問題になっているのかわかりますか?私はColdFusion開発者ではありませんが、不在の開発者のために何かをしています。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

ベンの答えは機能しますが、最良のオプションは、ループを開始する前に何回反復するかを 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 に答える