How to Programmatically change icon on a gridview
A volte si ha necessità di cambiare dinamicamente l'icona in una determinata colonna di un gridview, in particolare quando si ha la necessità di lavorare con determinati campi del DB che possono avere differenti valori a seconda di uno specifico stato. Per meglio comprendere pensate ad un flag (0,1) a seconda se un determinato documento nel DB è stato modificato o meno...bene, avremo quidni la necessità di una rappresentazione grafica all'intErno della nostra gridview che ci faccia subito capire se quel documento è stato modificato o meno!! Come fare quini a cambiare l'immagine associata al documento dinamicamente SENZA SPRECARE 1 ORA CON VARI CICLI ITERATIVI?? Basta crearsi delle immagini e eprsonalizzare quindi il nome a seconda del valore che in quel determinato momento carica il nostro gridview. Ipotizziamo di avere la necessità, come ho detto prima, di far visualizzare due icone divrese su di una stessa colonna del gridview a seconda di un campo flag all'interno del nostro DB.
Come prima cosa personalizziamo il nome delle nostre due immagini, ad esempio in questo modo:
- documento-aperto.gif
- documento-chiusi.gif
dove "aperto" e "chiuso" rispecchiano i valori del flag nel DB (0,1). A questo punto all'interno del nostro gridview personalizziamo la colonna in questo modo:
<asp:TemplateField>
<ItemTemplate>
<img src='images/documento-<%# Eval("Stato")%>.gif'); alt="Stato del documento" />
</ItemTemplate>
</asp:TemplateField>
ed il gioco è fatto;-)