Xslt ile AlternatingItem ve Sort

27 Ocak Salı, 2009 | Asp.net Xml /*Yorumlar (0)*/

Xslt ile çalışıyorsanız bir kaç küçük ayrıntı.
- Xml verilerini sıralamak için for-each kalıbına

<xsl:sort select="." order="ascending"/>

yazmak yeterli.
- Satırları ardışık olarak renklendirmek için de mod operatörü ve position() fonksiyonu bu işin üstesinden gelecektir.

<xsl:variable name=mod1 select="position()"/>
<xsl:if test="$modi mod 2 = 1">

Kodun tamamı;

<?xml version="1 .0" encoding="utf-8" ?>
<Sehirler>
<Sehir>Istanbul / Ataturk</Sehir>
<Sehir>Ankara / Esenboga</Sehir>
<Sehir>Ankara / Etimesgut</Sehir>
<Sehir>Murted Tur—Afb</Sehir>
<Sehir>Adana / Sakirpasa</Sehir>
<Sehir>Adana / Incirlik</Sehir>
<Sehir>Atyon</Sehir>
<Sehir>Antalya</Sehir>
<Sehir >Gaziantep</Sehir>
<Sehir>Iskenderun</Sehir>
<Sehir>Konya</Sehir>
<Sehir>Merzifon</Sehir>
<Sehir>Samsun</Sehir>
<Sehir>Sivas</Sehir>

Xml verisinin devamı için tıklayın...

<xsl:template match="/">
 <table style="width :200px;color:#333333;border-collapse:collapse;font-family:verdana;font-size : 10px;" cellspacing="0" cellpadding="4" border="0">
  <tr style="color:White;background-color:#5D7B9D;font-weight:bold;">
   <th scope="col">Şehirler</th>
  </tr>
  <xsl:for-each select="Sehirler/Sehir">
   <xsl:sort select="." order="ascending"/>
   <xsl:variable name="modi" select="position()"/>
   <xsl:if test="$modi mod 2 = 1">
    <tr style="color:#333333;background-color:#F7F6F3;">
     <td>
      <xsl:value-of select="." />
     </td>
    </tr>
   </xsl:if>
   <xsl:if test="$modi mod 2 = 0">
    <tr style="color:#284775;background-color:White;">
     <td>
      <xsl:value-of select="."/>
     </td>
    </tr>
   </xsl:if>
  </xsl:for-each>
  <tr style="color:White;background-color:#5D7B9D;font-weight:bold;">
   <th>-</th>
  </tr>
 </table>
</xsl:template>

Yorum Yaz

Ad

Email (sahte adresli yorumlar silinir.)

Yorum