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

Problemillas con una columna de plantilla de un datagrid

Estas en el tema de Problemillas con una columna de plantilla de un datagrid en el foro de ASPX (.net) en Foros del Web. Muy buenas. De verdad que esto no me sale: Código: <asp:TemplateColumn HeaderText="Ver"> <ItemStyle HorizontalAlign="Center"></ItemStyle> <ItemTemplate> <asp:HyperLink ID="hlDocumento" Runat="server" NavigateUrl='~/verDocumento.aspx?id=<%# DataBinder.Eval(Container.DataItem, "ID") %>' ImageUrl='~/imagenes/<%# DataBinder.Eval(Container.DataItem, "Documento") ...
  #1 (permalink)  
Antiguo 23/10/2006, 05:34
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Problemillas con una columna de plantilla de un datagrid

Muy buenas. De verdad que esto no me sale:

Código:
								<asp:TemplateColumn HeaderText="Ver">
									<ItemStyle HorizontalAlign="Center"></ItemStyle>
									<ItemTemplate>
										<asp:HyperLink ID="hlDocumento" Runat="server" NavigateUrl='~/verDocumento.aspx?id=<%# DataBinder.Eval(Container.DataItem, "ID") %>' ImageUrl='~/imagenes/<%# DataBinder.Eval(Container.DataItem, "Documento") %>.gif'>
										</asp:HyperLink>
									</ItemTemplate>
								</asp:TemplateColumn>
y en el resultado me sale el enlace:
Código:
http://localhost/webapp/verDocumento.aspx?id=<%# Container.DataItem("ID") %>
Será que me estoy pillando un gripazo y hoy no me entero de nada.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 23/10/2006, 13:46
 
Fecha de Ingreso: noviembre-2004
Ubicación: Asuncion - Paraguay
Mensajes: 155
Antigüedad: 19 años, 5 meses
Puntos: 0
Asi tiene que ser:
<asp:HyperLink ID="hlDocumento" Runat="server" NavigateUrl='<%# "~/verDocumento.aspx?id="+ DataBinder.Eval(Container.DataItem, "ID") %>' ImageUrl='~/imagenes/<%# DataBinder.Eval(Container.DataItem, "Documento") %>.gif'></asp:HyperLink>
  #3 (permalink)  
Antiguo 24/10/2006, 02:21
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Muchas gracias por la respuesta. Tal y como lo ponías me daba el siguiente error: la cadena de entrada no tiene el formato correcto.

Trabajo con VB.Net por lo que he sustituido los + por &. Al final queda así:

Código:
<asp:HyperLink
   ID="hlDocumento" 
   Runat="server" 
   NavigateUrl='<%# "~/verDocumento.aspx?id=" & DataBinder.Eval(Container.DataItem, "ID") %>' 
   ImageUrl='<%# "~/imagenes/iconos/icoDoc" & DataBinder.Eval(Container.DataItem, "Extension") & ".gif" %>'>
Y una preguntita más de regalo ¿cómo podría añadirle algún atributo a la imagen del hipervínculo? En el caso de que no exista el icono de una extensión determinada, que se ponga una por defecto, por ejemplo, imagenes/iconos/icoDocOtras.gif

Gracias y un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #4 (permalink)  
Antiguo 24/10/2006, 05:27
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Bueno, esto ya está:

Código:
<asp:HyperLink id="hlDocumento" 
   ImageUrl='<%# DataBinder.Eval(Container.DataItem, "Extension") %>'
   NavigateUrl='<%# "~/verDocumento.aspx?id=" & DataBinder.Eval(Container.DataItem, "ID") %>'
   Runat="server" 
   OnDataBinding='CompruebaImagen'>
Y en el codebehind:
Código:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If Not Page.IsPostBack Then
            Dim dir As System.IO.Directory
            Dim arrExt As New ArrayList
            Dim nombres() As String = dir.GetFiles(Server.MapPath("~/imagenes/iconos/"), "icoDoc*.gif")
            For Each nombre As String In nombres
                arrExt.Add(nombre.Replace(Server.MapPath("~/imagenes/iconos/") & "icoDoc", "").Replace(".gif", "").ToUpper)
            Next
            Session("extensiones") = arrExt

            ...

        End If

    End Sub

    ...

    Public Sub CompruebaImagen(ByVal sender As Object, ByVal e As EventArgs)

        Dim arrExt As ArrayList = Session("extensiones")
        CType(sender, HyperLink).Attributes.Add("title", "Archivo ." & CType(sender, HyperLink).ImageUrl)
        If arrExt.Contains(CType(sender, HyperLink).ImageUrl) Then
            CType(sender, HyperLink).ImageUrl = "~/imagenes/iconos/icoDoc" & CType(sender, HyperLink).ImageUrl & ".gif"
        Else
            CType(sender, HyperLink).ImageUrl = "~/imagenes/iconos/icoDocOtros.gif"
        End If

    End Sub
Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
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 23:27.