lunes, 6 de abril de 2009

imágenes en gridview

Necesitan mostrar imágenes en algunas columnas en base a cierto criterio.
Supongamos este ejemplo imaginario del grid:

Codigo Nombre Tipo Estatus
=========================================
3502 Honda Twiste Moto A
P6311 Honda Rebel Moto P

Resulta que en vez de que aparezcan la letra A o su respectiva, al igual la letra P que muestre CIERTAS imágenes, para mostrar una ayuda visual más entendible y más bonita, a su vez, esta imagen que sea un link.

El código es para el Evento RowDataBound del GridView

if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[2].Text == "1")
{
HyperLink hlnk = new HyperLink();
hlnk.NavigateUrl ="http://www.google.com/";
hlnk.ImageUrl = "http://www.tusitio.com/images/activo.gif";
e.Row.Cells[2].Controls.Add(hlnk);
}
}

Nota si no quiere que sea un link solo donde dice NavigateUrl ="" pongalo en blanco.
Al igual que cuando no quieran imagen solo tiene que poner hlnk.ImageUrl=""
si no quieres poner la ruta entera tambien puedes usar este signo ~ para la ruta de tu sitio
hlnk.ImageUrl="~/image/adjunto.gif"


saludos,
Espero le sirva alguien.

3 comentarios:

  1. Carlos estuvo rebueno tu post, la verdad me ha mas que ayudado en otros lados habia encontrado similar pero incompleto, como sugerencia seria bueno que detalles el metodo rowbound y donde tienes que declararlo en mi caso que uso asp .net y vb lo hize asi:


    En el load
    AddHandler TUGRILLA.RowDataBound, AddressOf TUGRILLA_RowDataBound

    Protected Sub DgGrupos_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)

    ResponderBorrar
  2. Genial...muy buen codigo sencillo y efectivo llevaba como 5 horas buscando sin resultados tan certeros....gracias

    ResponderBorrar
  3. Que bien que te halla servido.

    Suerte en tu proyecto.

    ResponderBorrar

Gracias por sus comentarios.




Carlos Juan