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:

Ozkar dijo...

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)

JesusDan dijo...

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

Carlos Juan dijo...

Que bien que te halla servido.

Suerte en tu proyecto.