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:
Advertisements

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.

    Reply
    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 “”;

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s