2011-02-01 17 views
5

Tengo una vista de cuadrícula y uno de los campos de la plantilla es una etiqueta de servidor de imagen asp. Quiero mostrar una imagen en esta vista de cuadrícula, pero en función del valor que obtengo en databind.Mostrar imagen basada en un valor en asp columna GridView

Por lo tanto, cada fila puede tener valores diferentes y, en función de estos valores, necesito mostrar diferentes imágenes. Traté de llamar a una función de JavaScript GetImage() y pasar el valor que obtengo en databind a esta función. Pero no puedo hacer que esto funcione.

<Columns> 
     <asp:TemplateField HeaderText="<%$Resources:LocalizedText,LabelStatus%>"> 
      <ItemTemplate> 
       <asp:Image ID="imgStatus" runat="server" CssClass="label" src="GetImage(<%#Eval(<%# Bind("Status_value") %>) %>)"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

función Javascript -

function GetImage(value) 
{ 
    if (value == 1) 
    { 
     return "../Images/act_green.gif"; 
    } 
    else 
    { 
     return "../Images/act_red.gif"; 
    } 
} 

¿Qué estoy haciendo mal aquí? Y, ¿cómo puedo solucionarlo? Gracias

+0

¿Puede mostrar el resultado HTML procesado? – msms

Respuesta

7

A menos que tenga más necesidades que no ha mencionado, no es necesario usar Javascript y también puede hacer todo en el servidor.

Cambiar la asp: etiqueta de la imagen a lo siguiente:

<asp:Image ID="imgStatus" runat="server" CssClass="label" ImageURL='<%# GetImage((int)Eval("Status_Value")) %>' /> 

En su código subyacente, coloque el siguiente:

public static string GetImage(int value) 
{ 
    if (value == 1) 
    { 
     return "../Images/act_green.gif"; 
    } 
    else 
    { 
     return "../Images/act_red.jpg"; 
    } 
} 

y ya está.

+0

No pude usar Bind o Eval a la propiedad src de la etiqueta del servidor de imagen. Y, en función de su respuesta, utilicé la propiedad ImageURL y manipulé los datos en consecuencia en mi fuente de datos (código subyacente). Gracias. – pavanred

+0

Buen trabajo. Me alegra que lo hayas hecho funcionar. –

1

Su función GetImage no se ejecuta.

Ver: IMG SRC tags and JavaScript


código del lado del servidor puede devolver la ruta a la imagen sin necesidad de utilizar JS.

+0

Hmm tiene sentido. Pero, ¿alguna idea de cómo puedo resolver este problema? Cualquier ayuda es apreciada. – pavanred

+0

Puedes hacerlo sin usar ningún javascript. – msms

Cuestiones relacionadas