Subject: Re: [xsl] Changing row colors using variables From: Jörg Heinicke <joerg.heinicke@xxxxxx> Date: Thu, 8 Nov 2001 02:11:36 +0100 |
Hi Steve, the only problem I see is: Where do you get $currentRowColor from? Was this in your code too? Then this won't work ... as David already said. The problem: You won't get a variable value from using a template once to the template using it the 2nd time (with easy <xsl:apply-templates select="row"/>). One method would be using recursive template: Apply always only the next following-sibling one. So: <xsl:template match="table"> <table> <xsl:apply-templates select="row[1]"/> </table> </xsl:template> <xsl:template match="row"> <xsl:param name="color-of-last-row"/> <xsl:variable name="color-of-this-row"> <xsl:choose> <xsl:when test="@t_orno != preceding-sibling::row[1]/@t_orno"> <xsl:choose> <xsl:when test="$color-of-last-row='#EFFFFF'"> <xsl:text>#FFFFFF</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>#EFFFFF</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:value-of select="$color-of-last-row"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <tr bgcolor="{$color-of-this-row}"> <!-- filling the <tr> with some <td>s --> </tr> <xsl:apply-templates select="following-sibling::row[1]"> <!-- give the $color-of-this-row as color-of-last-row to the next row --> <xsl:with-param name="color-of-last-row" select="$color-of this-row"/> </xsl:apply-templates> </xsl:template> This should solve the problem - if this is the problem you had. Regards, Joerg > <xsl:attribute name="bgcolor"> > <xsl:if test="@t_orno != preceding-sibling::row[1]/@t_orno"> > <xsl:choose> > <xsl:when test="$currentRowColor='#EFFFFF'"> > $currentRowColor=#FFFFFF > </xsl:when> > <xsl:otherwise> > $currentRowColor=#EFFFFF > </xsl:otherwise> > </xsl:choose> > </xsl:if> > <xsl:value-of select="$currentRowColor"/> > </xsl:attribute> > > > I have a variable name currentRowColor...if the value of t_orno is not the > same as t_orno in the preceding row, I want to switch row colors in my > grid...that way all rows of the same "t_orno" field will be colored > together. This code acts funny though, depending on where I put single > quotes...if I don't put the single quotes around #EFFFFF in the test > statement, it does not work...adding quotes around the variable assignment > like so: $currentRowColor='#EFFFFF' changes the color. I don't think I am > assigning the variables correctly, because the test condition does not > always work correctly. > > --Steve Kuntz XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Changing row colors using, David Carlisle | Thread | RE: [xsl] Changing row colors using, Steve Kuntz |
Re: [xsl] Changing row colors using, David Carlisle | Date | Re: [xsl] Can you embed a filter te, Jörg Heinicke |
Month |