RE: [xsl] alternate row color in a table

Subject: RE: [xsl] alternate row color in a table
From: "Gertjan Assies" <gertjan.assies@xxxxxxxxxxxxxx>
Date: Thu, 14 Feb 2002 15:40:11 +0100
this will work then: 

***XML***
<?xml version="1.0" encoding="UTF-8"?>
<?xml:stylesheet type="text/xsl" href="simple4.xsl"?>
<data>
<info>aaaaa</info>
<info>bbbbb</info>
<grinfo><info>ccccc</info></grinfo>
<grinfo><subinfo>blabla</subinfo><info>ddddd</info></grinfo>
</data>

***XSL***
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">

<xsl:output method="html"/>

<xsl:template match="info|grinfo">
<tr>
<xsl:if test="(position() mod 2 = 1)">
<xsl:attribute name="bgcolor">#EEEEFF</xsl:attribute>
</xsl:if>
<td>
<xsl:apply-templates/>
</td></tr>
</xsl:template>

<xsl:template match="data">
<table><xsl:apply-templates/></table>
</xsl:template>

</xsl:stylesheet>

the row with ccccc and the row with ddddd have the same bgcolor
using position() in this case seems to work just with siblings.

S.T.



---------------------------------------------------------------------------------------------------



>>> awelch@xxxxxxxxxxxxxxx 02/14/02 02:34 >>>

Hi,

Dont worry about using script, just use:

<tr>
    <xsl:if test="(position() mod 2 = 1)">
    <xsl:attribute name="bgcolor">#EEEEFF</xsl:attribute>
    </xsl:if>
    <td>some table data</td>
</tr>

within whatever template you are using to draw you table.


cheers

andrew

===


-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Sébastien
Tisserant
Sent: Thursday, February 14, 2002 12:58 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
Subject: RE: [xsl] alternate row color in a table


thanks for the answer

what do you mean by xslt script function? is the msxsl:script ?

i want to find a solution not using script function.

S.T.

*************************************************************

>>> jdgarrett@xxxxxxxxxx 02/14/02 12:51 >>>
rather than key off of position
call a xslt script function
that toggles the row color only
when a row is built from inside
the xsl:for-each



|-----Original Message-----
|From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
|[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Sébastien
|Tisserant
|Sent: Thursday, February 14, 2002 5:20 AM
|To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
|Subject: [xsl] alternate row color in a table
|
|
|hello,
|
|the methods described in the archive for alternating row color in
|a table, is ok when your template match rows which are siblings or
|when you to display all the rows,
|but what to do when the template match elements with different
|tree-level or when you you want to omit some rows.
|Using position() in these cases doesn't work anymore.
|
|Could you help me finding something, in pure xslt language, doing
|like with script function:
|
|function FnTrClass()      {      if ( VClass == "TR2" ) {
|       VClass = "TR1";         }      else {         VClass =
|"TR2";         }      return VClass;      }
|used in this template:
|
|<xsl:for-each select="ROW[@TBL='ATL_OQ']">      <TR>
|<xsl:attribute name="class">      <xsl:eval
|language="JavaScript">FnTrClass();</xsl:eval>
|      </xsl:attribute>      <TD>      <xsl:value-of
|select="DATE-DEPOSIT/LIB"/>      </TD>      </TR></xsl:for-each>
|
|
|thanks
|
|Sebastien Tisserant
|
|
| XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list 
|



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list 



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list 



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list 



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread