Benchè l'approccio basato sui Template sia utile, in certi casi presenta dei limiti che in realtà si possono aggirare con un po' di codice.
Lo scenario è un Repeater così definito:
<table border="1"> <ASP:Repeater id="rp" runat="server" onItemCreated="rp_ItemCreated"> <ItemTemplate> <tr id="tr" runat="server"> <td><%#DataBinder.Eval(Container.DataItem, "Nome")%></td> </tr> </ItemTemplate> </ASP:Repeater> </table>
La necessità è quella di creare un template che abbia un colore diverso nell'AlternatingItem. E' ovviamente possibile arrivarci duplicando il template, ma se non si vuole duplicare inutilmente il codice, perchè ad esempio il template è caricato esternamente, come quando si utilizza LoadTemplate, è sempre possibile intercettare l'evento ItemCreated, che si verifica alla creazione di ogni singolo item del Repeater, e cambiare il colore di sfondo (o qualsiasi altra proprietà) in questo modo:
private void rp_ItemCreated(object sender, RepeaterItemEventArgs e) { // solo se è il pager if (e.Item.ItemType == ListItemType.AlternatingItem) { // lo rendo rosso! TableRow tRow = (TableRow)e.Item.FindControl("tr"); tRow.Style("background-color") = "red"; } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Sfruttare la local cache del browser tramite gli ETag in #aspnetcore https://aspit.co/cfc di @crad77 #webapi #aspnetmvc #blazor #cache
- Workflow di continuous deployment tramite pull request label in GitHub
- 3 metodi JavaScript che ogni applicazione web dovrebbe contenere
- ASP.NET Website Programming
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!