Foros del Web » Programación para mayores de 30 ;) » .NET »

DataGrid: Cómo crear una columna en la que se muestren Images ???

Estas en el tema de DataGrid: Cómo crear una columna en la que se muestren Images ??? en el foro de .NET en Foros del Web. Hola! Estoy trabajando en ASP.NET (usando VB.NET) y este es mi problema: Tengo un datagrid con 2 columnas, realizo una consulta a la BD y ...
  #1 (permalink)  
Antiguo 22/06/2004, 02:42
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
DataGrid: Cómo crear una columna en la que se muestren Images ???

Hola!
Estoy trabajando en ASP.NET (usando VB.NET) y este es mi problema:
Tengo un datagrid con 2 columnas, realizo una consulta a la BD y obtengo un texto y un nombre de fichero (.jpg), que serán los datos que se mostraran en cada columna.
Mi idea es hacer esa consulta y en el evento ItemDataBound del datagrid realizar la creacion del objeto Image y asignarle la ruta específica que he obtenido en el datasource con la consulta anterior.
No lo consigo, no sé como poner una columna de objetos Image, en tiempo de ejecución tampoco lo consigo, no puedo crear un objeto Image y asignarselo al correspondiente e.Item.Cell
A ver si me podeis pegar algo de código de este tema, ya que creo que ésta es una actividad muy normal, el mostrar datagrids con imagenes dentro de una de las columnas.

Muchas gracias antes de nada!!

__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET

Última edición por GeRuNdIo; 22/06/2004 a las 02:44
  #2 (permalink)  
Antiguo 22/06/2004, 04:21
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Listo, econtré la solución...... Si es que el que no busca no encuentra....

Pego aqui el código para los que tengan este mismo problemilla:

Private Sub LlenaDataGrid(ByVal t As String)
Dim conexion As New SqlConnection("server=(local);database=pruebaPorta lnoticias;user=sa;")

Dim sql As String
sql = "SELECT textonoticia AS [Noticia], imagen FROM noticias WHERE tipo_noticia='"
Dim ds As New DataSet
Dim da As New SqlDataAdapter

conexion.Open()
Select Case t
Case "Deportes"
sql = sql & "Deportes'"
Case "Política"
sql = sql & "Politica'"
Case "General"
sql = sql & "General'"
End Select

da.SelectCommand = New SqlCommand(sql, conexion)
da.Fill(ds)

Me.DataGrid1.DataSource = ds
Me.DataGrid1.DataBind()
conexion.Close()

End Sub

Private Sub MyDataGrid_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

If e.Item.ItemType = ListItemType.Item Or _
e.Item.ItemType = ListItemType.AlternatingItem Then

Dim hgc_control As New HtmlGenericControl

With hgc_control
.TagName = "img"
.Attributes.Add("src", "/webappprueba/" & e.Item.DataItem("imagen"))
.Attributes.Add("border", "0")
End With

e.Item.Cells(1).Controls.Clear() 'Columna a reemplazar

e.Item.Cells(1).Controls.Add(hgc_control)

End If
End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
LlenaDataGrid(Me.Button1.Text)
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
LlenaDataGrid(Me.Button2.Text)
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
LlenaDataGrid(Me.Button3.Text)
End Sub
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #3 (permalink)  
Antiguo 22/06/2004, 05:51
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años
Puntos: 1
Ok GeRuNdIo... seguro que me sirve más adelante.

Saludos!!!
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
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 08:30.