Il Web Server Control Repeater

Il Web Server Control Repeater, stando al suo stesso nome, itera i dati da una tabella di database o da un documento XML, la parte di dati stessi che vogliamo vedere stampati a video. A differenza degli altri controlli appena visti, non possiede una vera e propria funzione di formattazione. Lo si può consierare un "contenitore" all'interno del quale possiamo muoverci solo fornendo un nostro layout (per esempio una tabella).

Perchè il Controllo Repeater possa effettuare il rendering dei dati, deve necessariamente contenere la Proprietà di modello ItemTemplate la quale, a sua volta, deve contenere l'associazione ad un campo del database tramite l'espressione <%# Eval("NomeCampo") %>

Le altre proprietà del controllo sono:

  • AlternatingItemTemplate: generalmente utilizzato per differire l'aspetto di elementi alternati;
  • HeaderTemplate: contiene del testo nella parte superiore dell'elenco;
  • FooterTemplate: contiene del testo nella parte inferiore dell'elenco;
  • SeparatorTemplate: generalmente si usa un tag <hr /> per separare gli elementi.

Per mettere in pratica queste proprietà appena viste, visualizziamo una tabella del database contenente il nome di 10 città e lo faremo alternando il colore d sfondo delle celle. Per prima cosa importiamo il controllo Repeater nella pagina e lo si associ ad una base di dati. Il suo codice è:

<asp:Repeater ID="Repeater1" runat="server" 
DataSourceID="AccessDataSource1">

Subito dopo implementiamo i tag per l' HeaderTemplate:

<HeaderTemplate>
<table id="IDaPiacere">
<tr>
<th class="NomeClasse">ID</th>
<th class="NomeClasse">Città</th> 
</tr> 
</HeaderTemplate>

La proprietà ItemTemplate sarà:

<ItemTemplate>
<tr>
<td>
<asp:Label runat="server" ID="Label1" Text='<%# Eval("ID")%>' />
</td>
<td>
<asp:Label runat="server" ID="Label2" Text='<%# Eval("Citta")%>' />
</td>
</ItemTemplate>

Per avere le righe alternate implementiamo un'altra proprietà: AlternatingItemTemplate:

<AlternatingItemTemplate>
<tr>
<td style="background:#ccc; padding-left:3px;">
<asp:Label runat="server" ID="Label3" Text='<%# Eval("ID") %>' />
</td>
<td style="background-color:#ccc; padding-left:3px;">
<asp:Label runat="server" ID="Label4" Text='<%# Eval("Citta") %>' />
</td> 
</AlternatingItemTemplate>

Infine chiudiamo i tag aperti:

<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>

Ed ecco qui di seguito la tabella formattata in base ai colori scelti.

ID Città
1 Milano
2 Roma
3 Bari
4 Palermo
5 Firenze
6 Trento
7 Bolzano
8 Mantova
9 Bologna
10 Ferrara