[XSL] Wisselende kleur in ROW

Pagina: 1
Acties:

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Hoe kan je met XSL! in een tabel de kleur van de row laten veranderen? (ZIE Text Voorbeeld)

dus
code:
1
2
3
4
5
6
LIJST:5 ROWS
ROW1: KLEUR1
ROW2: KLEUR2
ROW3: KLEUR1
ROW4: KLEUR2
ROW5: KLEUR1

duidelijk?

Programmer - an organism that turns coffee into software.


  • Blue-eagle
  • Registratie: September 2000
  • Niet online
Gewoon met events?

  • cutter
  • Registratie: November 2000
  • Laatst online: 28-09-2025

cutter

Wannabe i7 fanboy

W&G --> P&W en beter zoeken was de boodschap die ik er bij moest geven van de baas. ;)

  • TimMer
  • Registratie: Februari 2000
  • Niet online
code:
1
2
if row.id mod 2 = 0 then row.color=kleur 1
else row.color=kleur 2

Iets in die richting.

Verwijderd

patternmatching proberen. In je rows in de XML tree een nummertje meegenereren als attribute dat om de row 0 of 1 is. Dan matchen met dat attribute via een template. Je kunt ook met functies proberen, maar XSLT is patternmatching, dus ik zou dat in 1e instantie proberen.

  • MisterData
  • Registratie: September 2001
  • Laatst online: 07-09 20:23
En iets met xsl:variable :? Heb het nooit gebruikt, maar misschien breng ik anderen op het idee :)

Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
<table>
  <xsl:template match="dingetje">
    <tr>
    <xsl:if test="position() mod 2 = 0">
       <xsl:attribute name="bgcolor">blauw</xsl:attribute>
    </xsl:if>
    <xsl:apply-templates/>
    </tr>
  </xsl:template>
</table>

Dit zou zo ongeveer wel moeten werken :)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op dinsdag 19 maart 2002 18:09 schreef Cheatah het volgende:
knip..
Dit zou zo ongeveer wel moeten werken :)
Jup.. Evt. zou je die if nog weg kunnen laten, maar dit is wel een nette oplossing :)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Topicstarter
Op dinsdag 19 maart 2002 17:44 schreef cutter het volgende:
W&G --> P&W en beter zoeken was de boodschap die ik er bij moest geven van de baas. ;)
Ermm beter zoeken? waarop? waarnaar? waarmee?
WG = Design
PW = Logica

Dus volgens mij hoort XSL bij WG. :?
Op dinsdag 19 maart 2002 17:47 schreef TimMer het volgende:
code:
1
2
if row.id mod 2 = 0 then row.color=kleur 1
else row.color=kleur 2

Iets in die richting.
Deze logica is mij bekent. Maar hoe doe je dat met XSL?
Op dinsdag 19 maart 2002 18:09 schreef Cheatah het volgende:
code:
1
2
3
4
5
6
7
8
9
10
<table>
  <xsl:template match="dingetje">
    <tr>
    <xsl:if test="position() mod 2 = 0">
       <xsl:attribute name="bgcolor">blauw</xsl:attribute>
    </xsl:if>
    <xsl:apply-templates/>
    </tr>
  </xsl:template>
</table>

Dit zou zo ongeveer wel moeten werken :)
En dit is wat ik dus zocht..... Ik wist niet dat je mod kon gebruiken.
Maar volgens mij moet position() current() zijn.... Maar ik kan het hier niet proberen. Laat het morgen wel vanaf mijn werk weten....

Programmer - an organism that turns coffee into software.


  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op dinsdag 19 maart 2002 18:59 schreef LuCarD het volgende:
Maar volgens mij moet position() current() zijn.... Maar ik kan het hier niet proberen. Laat het morgen wel vanaf mijn werk weten....
Position geeft de huidige positie vanaf de parent.. dat werkt dus wel, current() ken ik niet.

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Een iets andere oplossing die met van css uit gaat:
Rijen om-en-om
In grote tabellen is het vaak duidelijker wanneer de rijen om-en-om een andere kleur hebben. Om dat voor elkaar te krijgen zijn er twee css classes aangemaakt:
code:
1
2
.darkertrue { background-color: #E5E5E5; }
.darkerfalse { background-color: #F5F5F5; }

Vervolgens wordt de volgende code gebruikt in de templates:
code:
1
2
3
<tr class="darker{position() mod 2 = 0}">
..overige rij vulling..
</tr>

Wanneer deze rij in een aparte template wordt gestopt, zal de xslt processor de volgende html terug geven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<tr class="darkerfalse">
..overige rij vulling..
</tr>
<tr class="darkertrue">
..overige rij vulling..
</tr>
<tr class="darkerfalse">
..overige rij vulling..
</tr>
<tr class="darkertrue">
..overige rij vulling..
</tr>

Met bovenstaande css zal de browser de rijen nu om-en-om met een lichte en donkere achtergrondkleur laten zien.
Pagina: 1