Foros del Web » Programando para Internet » ASPX (.net) »

imagen en grid view

Estas en el tema de imagen en grid view en el foro de ASPX (.net) en Foros del Web. Hola a todos, espero puedan ayudarme, estoy desarrollando una pagina en asp y vb, con una base de datos en sql 2000, el problema que ...
  #1 (permalink)  
Antiguo 29/10/2010, 09:52
 
Fecha de Ingreso: agosto-2010
Mensajes: 30
Antigüedad: 13 años, 7 meses
Puntos: 3
Información imagen en grid view

Hola a todos, espero puedan ayudarme, estoy desarrollando una pagina en asp y vb, con una base de datos en sql 2000, el problema que tengo es que es una página de inventarios y en un gridview, donde hago una consulta a la base de datos, tengo que poner el la última columna una imagen de un círculo, como si fuera un semáforo, dependiendo del valor en una de las columnas anterioires, la imágen es amarilla, roja o verde. No se si haya forma de lograr esto, muchas gracias de antemano!!
  #2 (permalink)  
Antiguo 29/10/2010, 10:36
 
Fecha de Ingreso: junio-2010
Ubicación: .. somewhere
Mensajes: 30
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: imagen en grid view

Claro que es posible, en el evento RowDataBound de tu gridview harías algo como esto (el codigo que te doy es en c# pero aplica de igual manera el vb):

Código:
GridViewRow row = e.Row;
Image img = e.Row.FindControl("ImgSemaforo") as Image;
 if (row.RowIndex > -1)
    {
        img.ImageUrl = "~/ColorVerde.png"; //Aqui asignas la imagen dependiendo de lo que necesitas
    }
Asi quedaria en html de tu gridview:

Código HTML:
 <asp:GridView ID="TuGridView" runat="server" AutoGenerateColumns="False">
                        <Columns>   
                            <asp:TemplateField HeaderText="Semaforo">
                                <ItemTemplate>
                                    <asp:Image ID="ImgSemaforo" runat="server" CausesValidation="False" ></asp:Image>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>  
     </asp:GridView> 
Saludos!

Última edición por superookie; 29/10/2010 a las 10:44
  #3 (permalink)  
Antiguo 29/10/2010, 12:22
 
Fecha de Ingreso: agosto-2010
Mensajes: 30
Antigüedad: 13 años, 7 meses
Puntos: 3
Respuesta: imagen en grid view

Hola muchas gracias por la respuesta, lo he probado y me funciona al poner la imágen, ahora el problema que tengo es que quiero modificar la imágen de pendiendo de un valor, osea que la imagen es diferente en cada fila. Y la imágen se toma solo del primer valor, y a toda la columna se le pone la misma imágen. Por ejemplo este es mi código de prueba y por ejemplo en mi código en vb, el valor de la variable valor, cambia pero la imagen no. Muchas gracias!!

Código vb:
Ver original
  1. Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
  2.  
  3.         Dim valor = 3
  4.         Dim row As GridViewRow = e.Row
  5.         Dim img As Image = e.Row.FindControl("ImgSemaforo")
  6.         If row.RowIndex > -1 Then
  7.             If valor = 5 Then
  8.                 valor = 4
  9.                 img.ImageUrl = "imagenes/amarillo.jpg"
  10.             End If
  11.             If valor = 4 Then
  12.                 valor = 3
  13.                 img.ImageUrl = "imagenes/rojo.jpg"
  14.             End If
  15.             If valor = 3 Then
  16.                 valor = 5
  17.                 img.ImageUrl = "imagenes/verde.jpg"
  18.             End If
  19.  
  20.         End If
  21.     End Sub
  #4 (permalink)  
Antiguo 29/10/2010, 12:36
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: imagen en grid view

Eso paso por la forma en la que estas tratando de asignar la imagen, por ejemplo:
Luego de que haces esto:

If row.RowIndex > -1 Then

Deberias volver a buscar la columna que contiene el valor que quieres comparar, en otras palabras debes volver a realizar esto:
Dim valor As label = e.Row.FindControl("lblvalor") pero para la columna que posee el valor
luego entonces si podrias realizar la comparacion
If valor = 5 Then
imagen
else if valor=3 then
imagen
end if

Y asi sucesivamente
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #5 (permalink)  
Antiguo 29/10/2010, 12:39
 
Fecha de Ingreso: junio-2010
Ubicación: .. somewhere
Mensajes: 30
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: imagen en grid view

Hola Karen30, mira, lo que sucede es que el evento RowDataBound, se ejecuta 1 vez por cada fila de tu origen de datos, entonces no debes inicializar tu variable Dim valor = 3 dentro del evnto RowDataBound.
Otra detalle, por lo que veo siempre te esta poniendo la imagen verde, ¿cierto?, utiliza If Else.

Saludos!
  #6 (permalink)  
Antiguo 29/10/2010, 13:11
 
Fecha de Ingreso: agosto-2010
Mensajes: 30
Antigüedad: 13 años, 7 meses
Puntos: 3
Respuesta: imagen en grid view

Muchisimas gracias ahora si me cambian la imágen, ahora otra dudita el código que puse anteriormente era de prueba y manipulaba los valores colocandole un valor en el código, pero realmente lo que quiero es que la imágen se modifique dependiendo de un valor que esta en el mismo grid

VALOR IMÁGEN
4 ROJO
5 AMARILLO
3 VERDE
5 AMARILLO

Cómo puedo tomar el valor de un campo de un grid???
Muchisimas gracias me han sido de gran ayuda!!!
  #7 (permalink)  
Antiguo 29/10/2010, 13:42
 
Fecha de Ingreso: junio-2010
Ubicación: .. somewhere
Mensajes: 30
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: imagen en grid view

Hola de nuevo Karen30, mira eso lo puedes resolver de la siguiente manera:

Código:
If row.Cells[0].Text = "4" Then
    '... aqui asignas el valor
End If
Obvio que en row.Cells[0] lo que esta entre corchetes debe ser el indice de la columna de donde quieres obtener el valor.

Saludos!!
  #8 (permalink)  
Antiguo 29/10/2010, 14:00
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: imagen en grid view

Puedes usar lo que te acaban de comentar, o bien de esta forma que te comente:

Cita:
Iniciado por jaullo Ver Mensaje
Eso paso por la forma en la que estas tratando de asignar la imagen, por ejemplo:
Luego de que haces esto:

If row.RowIndex > -1 Then

Deberias volver a buscar la columna que contiene el valor que quieres comparar, en otras palabras debes volver a realizar esto:
Dim valor As label = e.Row.FindControl("lblvalor") pero para la columna que posee el valor
luego entonces si podrias realizar la comparacion
If valor = 5 Then
imagen
else if valor=3 then
imagen
end if

Y asi sucesivamente
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #9 (permalink)  
Antiguo 09/03/2013, 10:24
 
Fecha de Ingreso: agosto-2011
Mensajes: 4
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: imagen en grid view

hola que tal, tengo un problema con respecto a este tema, te explico, espero que sigas ene sto y puedas ayudarme

tengo un gridview donde meustro mis datos que provienen de una sp de mi bd

como hago para agregar una columna adicional despues de la respuesta, pero añadiendo a esas filas de la nueva columna imagenes, x ejemplo paises, ya tengo un campo donde me muestrael texto del pais, pero quiero mostrarlo en imagen, y desde luego como haria para ocultar ese campo pais y solo sea visible el nuevo campo generado con las imagenes, espero que puedas ayudarme en eso, tambien como posicionar esa nueva columna generada ya que o bien me sale como priemra columna si le pongo en false autogenerarcolum o me sale como 2 segunda columna en true, gracias espero su ayuda ya que es para un proyecto y quiero darle una mejor presentacion a una la web con respecto a eso

vazagho
[email protected]

Etiquetas: grid, view, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:34.