Bueno otro tip, que he utilizado y les podría servir.
Mostrar Imagen en GridView dependiendo de una condición
Se trata de como mostrar una imagen dependiendo de una condición, cabe resaltar que para estos ejemplos voy a evaluar un valor booleano que se encuentra almacenado en una base de datos.
Dependiendo de su valor (falso o verdadero) me mostrará cierta imagen.
Debo decir que este ejemplo también lo he aplicado para determinar estados de controles dentro del gridview como (ImageButton, DropDownList y lo que se les ocurra). Claro utilizando un TemplateField.
Acá en caso de que la expresión booleana sea nula, mostraré una imagen .gif en blanco.
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl='<%# (Eval("yesOrNo").Equals(true) ? "~/Images/logos/yes.gif" : (Eval("yesOrNo").Equals(false) ? "~/Images/logos/no.gif" : "~/Images/logos/blank.gif"))%>' />
</ItemTemplate>
Si siempre tendremos un valor para evaluar, podemos simplificar las cosas, quedando nuestro código así.
<ItemTemplate> <asp:Image ID="Image1" runat="server" ImageUrl='<%# (Eval("yesOrNo").Equals(true) ? "~/Images/logos/yes.gif" : "~/Images/logos/no.gif")%>' /> </ItemTemplate>
Y por último podemos crear una función que reciba varios parametros, y dependiendo de ellos me devuelva un valor booleano.
Así llamamos al método:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:Image ID="Image1" ImageUrl='<%# ChooseImage(Directcast(Eval("BooleanValue"), Boolean)) %>' runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
Y algo parecido a esto en el code behind.
Protected Function ChooseImage(ByVal value As Boolean) As String If value = True Then Return "~/images/GreenTick.gif" Else Return "~/images/RedCross.gif" End If End Function
Espero les sirva. Saludos desde Guatemala.