In plaats van twee (bijna) identieke item templates te creëren is er een eenvoudigere oplossing mogelijk:
*** ASPX ***
<ItemTemplate>
<tr class="<%# GetListItemCssName(Container) %>">
<td>...</td>
<tr>
</ItemTemplate>
*** CS ***
.protected string GetListItemCssName(object container)
{
if (container is ListViewDataItem)
{
if (((ListViewDataItem)container).DisplayIndex % 2 == 0)
return "Item";
else
return "AlternatingItem";
}
return null;
}
<ItemTemplate>
<tr class="<%# GetListItemCssName(Container) %>">
<td>...</td>
<tr>
</ItemTemplate>
*** CS ***
.protected string GetListItemCssName(object container)
{
if (container is ListViewDataItem)
{
if (((ListViewDataItem)container).DisplayIndex % 2 == 0)
return "Item";
else
return "AlternatingItem";
}
return null;
}
Zoals je ziet maak ik maar één template aan, nl. het ItemTemplate. Daar waar de variatie tussen een item en alternating item toegepast moet worden (in dit geval de class attribuut van de tabel regel) roep ik een methode in mijn code-behind aan.
De methode in de code-behind bepaalt aan de hand van de DisplayIndex of het om een even of oneven regel gaat en geeft de juiste class name terug.
1 opmerking:
Geen werving en selectiebureaus, enkel werkgevers! Solliciteer dus rechtstreeks bij de werkgever. Check jouw ict vacature!
Een reactie posten