2016-06-09 7 views
0

Ich habe eine Liste, über die ich iteriere, aber ich möchte meinen eigenen Zähler verwenden. Ich habe mit mehreren erfolglosen Versuchen versucht, meinen eigenen Zähler zu implementieren. Die integrierten Funktionen funktionieren nicht, da einige Datensätze im laufenden Betrieb aus der Liste herausgefiltert werden. Ich möchte jedoch nur die Datensätze zählen, die nicht gefiltert werden. Ich habe versucht, einer Variablen einen Wert zuzuweisen und zu inkrementieren, aber ich schien den Wert immer zu wiederholen.Wie implementiert man einen benutzerdefinierten Zähler in Freemarker?

Beispielcode

<#list recordList as record> 
    <#assign count>${record_index + 1 }</#assign> 
    <#if record.isNotExcluded()>    
     <#lt> Record ${count} 
    </#if> 
</#list> 

In dem obigen Beispiel, wenn ich 5 Aufzeichnungen und dritte Datensatz ausgeschlossen wird dann wirft es die Nummerierung ab.

Antwort

1

Sie haben die Zählung außerhalb des for-Schleife zuzuordnen:

<#assign count = 0> 

<#list recordList as record> 
    <#if record.isNotExcluded()>    
     <#lt> Record ${count} 
     <#assign count = count + 1> 
    </#if> 
</#list> 

Edit: Als bewährte Methode der Daten im Backend zu der Ansicht sendet sollten bereits die ausgeschlossenen Elemente herausgefiltert. Das ist Geschäftslogik und sollte in der FreeMarker-Ansicht nicht gemacht werden. Das Backend sollte nur die Daten senden, die benötigt werden, damit eine solche Logik vermieden werden kann.

+1

Eine höhere Art der Inkrementierung: '# #Zahl zählen ++>' – ddekany

+0

Dies funktionierte für das, was ich versuchte! Danke noch einmal. Ich habe gestern mit dem Freemarker begonnen, so dass ich immer noch den Überblick über die Syntax und Struktur habe. Draußen macht die Schleife Sinn, jetzt sehe ich es. Bonehead-Fehler meinerseits. –

+0

@JoeUser Wenn ich Ihre Frage beantwortet habe, können Sie die Frage als beantwortet markieren, damit andere Benutzer sie finden können? Vielen Dank! (Und viel Glück mit FreeMarker!) – ratherblue

Verwandte Themen