Subject: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/>
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?
Subject: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>
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.
Subject: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>
Subject: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>