ListView csíkozása AlternatingItemTemplate nélkül

Gyakori feladat, hogy webszerver oldalon kell egy táblázatot előállítanunk, aminek ráadásul zebramintás csíkokat kell adnunk. Ez ASP.NET-ben elég egyszerű például a ListView vezérlővel, mert az ItemTemplate és az AlternatingItemTemplate segítségével külön sor sablont hozhatunk létre a páros és a páratlan sorokhoz. A módszer hátránya, hogy ha csak kis mértékben tér el a két sablon – például tényleg csak a háttérszín miatt kell minden második sorhoz egy másik CSS osztály – akkor feleslegesen elbonyolódik a kód, amit nehéz lesz karbantartani.

A probléma megoldható egyetlen ItemTemplate segítségével is, ha a sorhoz tartozó CSS osztályt az alapján számítjuk ki, hogy hányadik sornál tartunk éppen. Például így:

<ItemTemplate>
  <tr class="<%# Container.DisplayIndex % 2 == 0 ? "odd" : "" %>">

A módszer más vezérlők esetén is működik, csak a feltételt kell máshogy megfogalmazni. Repeater vezérlő esetén például a Container.ItemIndex tulajdonság tárolja az aktuális sor számát.

 

Technorati-címkék:

6 thoughts on “ListView csíkozása AlternatingItemTemplate nélkül

  1. Bognár Adrián

    Üdv! Én PHP-ben már régóta hasonlóképpen szoktam megoldani a sorok színezését, ezzel a kódrészlettel ciklusba szervezve:

    <?php
    $list_bg = 0;
    ……
    echo '’;
    ?>

    Gondoltam leírom, hátha más is hasznát veszi.

    1. Bognár Adrián

      Hmm… Ez az én formám.. A fórum motor gondolom az aposztróf miatt nem jelenítette meg a tartalmat…

      A hiányzó sor: echo “”;

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s