|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: alternate row color in a table
How can a real "alternate row color in XSLT" be done?? I'll outline the problems with examples below, but I am hoping someone will offer a solution to this problem. The problem with using position() to alternate rows; is that if you are doing a query on the data, you are not getting the data order. Selectively choosing data will mess up the row colors because there are missing positions. <?xml version="1.0" encoding="ISO-8859-1" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="ISO-8859-1" indent="yes"/> <xsl:param name="keyword">none</xsl:param> <xsl:template match="/">
<xsl:for-each select="//books">
<xsl:sort order="ascending" select="title"/>
<xsl:if test="title/*= $keyword">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="myBkgnd_{position() mod 2}"> <td width="*" class="pad">
<xsl:value-of select="title" />
</td>
</tr>
</table>
</xsl:if>
</xsl:for-each>
</xsl:template>if you pass this a keyword, it will display the results, however, seeing as how the results are not in sequential order, the position() does not work as one may wish. You will end up with several <tr>'s that are style1 and several <tr>'s that are style2 (in whatever order). so lets take an example say you have an xml file with this <books> <title>Book A</title> <title>Pamphlet 1</title> <title>Book B</title> <title>Book C</title> <title>Pamphlet 2</title> </books> and your keyword is "Book", the results will show Book A (with style1) - actual position value = 1 Book B (with style1) - actual position value = 3 Book C (with style2) - actual position value = 4
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








