Het gaat om een template dat aan de hand van de gegevens wel of geen data weergeeft. Wanneer ik data weergeef wil ik dat het aantal weergegeven items opgehoogd wordt, anders niet.
Zou je zeggen dan kopieer je je call-template en pas je het daar aan, maar dat gaat niet omdat het een en ander in loopjes ingebouwd zit. Ik zou wel een codeknipje kunnen plaatsen, maar het is nu onderhand zo'n rommel geworden dat dat geen zin meer heeft.
Update; kleine codesnip:
code:
1
2
3
4
5
6
7
8
9
10
11
| <xsl:template name="displayjobs">
<xsl:param name="index"/>
<xsl:param name="displayed"/>
<xsl:for-each select="/GLKS/JOBLIST/job[$index]/crewlist/*">
<xsl:if test="number(./@ID) = number($userID)">
<xsl:call-template name="displayjob">
<xsl:with-param name="job" select="/GLKS/JOBLIST/job[$index]"/>
</xsl:call-template>
</xsl:if>
</xsl:for-each>
</xsl:template> |
Wat je ziet; een loopje loopt een lijstje nodes af. Alleen wanneer aan de conditie voldaan is wordt de call-template aangeroepen en de data afgebeeld.
Nu wil ik daaronder dus het template recursief aanroepen. De index parameter wordt in elk geval verhoogd, maar de displayed parameter moet alleen verhoogd worden wanneer het "displayjob" template ook daadwerkelijk aangeroepen is. Ik zit me een beetje blind te staren, misschien zie ik een andere oplossing over het hoofd?
[
Voor 53% gewijzigd door
jsiegmund op 25-11-2004 19:23
]