XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Julie TittlerSubject: Need help with alternating table row colors. Standard way daes not work.
Author: Julie Tittler
Date: 03 May 2005 10:01 AM
There is a standard way of applying alternate row colors to a table using the position() function. This does not work in my case due to my object model. Different rows of the table are built using different nodes and different templates. Different templates call other templates nested with in for-each loops. To me it's complicated. I'm new at this. But to some of you more experienced developer's this may be cake. I tried something like:

<tr class="r{position() mod 2}">
--r0 and r1 are CSS classes for the odd and even rows.--

That did not work because position always seems to be 0. I've attached the xml source and the xslt style sheet. Any suggestions for alternating row colors would greatly be appreciated.

Thanks,
Julie Tittler

PS. This software is awesome! I've been using the 30day eval. But it's so great, I'm going to buy the pro copy even if work doesn't reimburse me. The company training tutorials are awesome, as it this forum. I'm recommending this product to everyone I know in the business.

PPS. If someone could also tell me why the Sweep ID and Unit ID value cells look hinky and how to fix it that would be awesome. I think it's because in the source xml they are empty and not well formed. Something like
<SweepID/>


Unknownattack2.xml


Unknownaar.xsl

Postnext
(Deleted User) Subject: Need help with alternating table row colors. Standard way daes not work.
Author: (Deleted User)
Date: 03 May 2005 12:43 PM
Hi Julie,

your sweepid and unitid in souce document are empty elements. this is why you don't see output for these two elements. the stylesheet looks right and you need correct your source xml document.

As for the table row color, from your stylesheet, you already hardcoded every <tr> element in each group, isn't the rows sequence already known and why can't you hardcode the color class attribute along with your <tr> element?

Postnext
Julie TittlerSubject: Need help with alternating table row colors. Standard way daes not work.
Author: Julie Tittler
Date: 03 May 2005 01:11 PM
There is a section of the XSLT I have not done yet because the database part is not done yet. You will see a "Body" node in the XML. This "Body" node can have various different element members, It's a node made of a choice of various element groups (in the xsd). These elements would be displayed in the table as well. So, the sequence of rows and the number of rows is not preknown.

Example:
if event type has a certain value, body would be this:
<Body>
<ETIC>something</ETIC>
<IsContam>something</IsContam>
<Body>

if event type has a different value, it could be something like this:
<Body>
<NeedsAmb>something</NeedsAmb>
<Count>something</Count>
<CritShort>something</CritShort>
<Group>something</Group>
</Body>

There are something like 50 different variations on the theme here which I need to make little templates for using a param to differentiate them:
<xsl:template match="Body">
<tr>
<td class="event_property">ETIC:</td>
<td class="event_prop_data"><xsl:value-of select="ETIC"/><td>
</tr>
<tr>
<td class="event_property">IsContam:</td>
<td class="event_prop_data"><xsl:value-of select="IsContam"/></td>
</tr>
</xsl:template>

Sorry I wasn't clear enough to begin with.

Julie

Postnext
(Deleted User) Subject: Need help with alternating table row colors. Standard way daes not work.
Author: (Deleted User)
Date: 03 May 2005 03:43 PM
Julie,

you need to replace your ListEvents template with the following code. the idea is to output all the tr to a varialbe as a nodeset, then iterate this nodeset and alternatively change the color.

Another important thing to do is to remove all the hardcoded color class attribute so that you have a central place to control the color.



<xsl:template match="ListEvents">
<table cellPadding="3" width="100%" border="1" style="border-color:#FFFFFF; border-width: 1px;">
<tbody>
<xsl:variable name="trlist">
<xsl:for-each select="anyType">
<xsl:apply-templates select="."/>
</xsl:for-each>
</xsl:variable>
<xsl:for-each select="$trlist/tr">
<tr class="r{position() mod 2}">
<xsl:copy-of select="@*|*"/>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:template>


hope this helps.

Postnext
Julie TittlerSubject: Need help with alternating table row colors. Standard way daes not work.
Author: Julie Tittler
Date: 03 May 2005 06:05 PM
There is a section of the XSLT I have not done yet because the database part is not done yet. You will see a "Body" node in the XML. This "Body" node can have various different element members, It's a node made of a choice of various element groups (in the xsd). These elements would be displayed in the table as well. So, the sequence of rows and the number of rows is not preknown.

Example:
if event type has a certain value, body would be this:
<Body>
<ETIC>something</ETIC>
<IsContam>something</IsContam>
<Body>

if event type has a different value, it could be something like this:
<Body>
<NeedsAmb>something</NeedsAmb>
<Count>something</Count>
<CritShort>something</CritShort>
<Group>something</Group>
</Body>

There are something like 50 different variations on the theme here which I need to make little templates for using a param to differentiate them:
<xsl:template match="Body">
<tr>
<td class="event_property">ETIC:</td>
<td class="event_prop_data"><xsl:value-of select="ETIC"/><td>
</tr>
<tr>
<td class="event_property">IsContam:</td>
<td class="event_prop_data"><xsl:value-of select="IsContam"/></td>
</tr>
</xsl:template>

Sorry I wasn't clear enough to begin with.

Julie

Posttop
Julie TittlerSubject: Need help with alternating table row colors. Standard way daes not work.
Author: Julie Tittler
Date: 03 May 2005 09:40 PM
There is a section of the XSLT I have not done yet because the database part is not done yet. You will see a "Body" node in the XML. This "Body" node can have various different element members, It's a node made of a choice of various element groups (in the xsd). These elements would be displayed in the table as well. So, the sequence of rows and the number of rows is not preknown.

Example:
if event type has a certain value, body would be this:
<Body>
<ETIC>something</ETIC>
<IsContam>something</IsContam>
<Body>

if event type has a different value, it could be something like this:
<Body>
<NeedsAmb>something</NeedsAmb>
<Count>something</Count>
<CritShort>something</CritShort>
<Group>something</Group>
</Body>

There are something like 50 different variations on the theme here which I need to make little templates for using a param to differentiate them:
<xsl:template match="Body">
<tr>
<td class="event_property">ETIC:</td>
<td class="event_prop_data"><xsl:value-of select="ETIC"/><td>
</tr>
<tr>
<td class="event_property">IsContam:</td>
<td class="event_prop_data"><xsl:value-of select="IsContam"/></td>
</tr>
</xsl:template>

Sorry I wasn't clear enough to begin with.

Julie

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.