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

problema con una hyperlinkcolumn! (datagrid, asp .net)

Estas en el tema de problema con una hyperlinkcolumn! (datagrid, asp .net) en el foro de ASPX (.net) en Foros del Web. Hola amigos, esta cuestión partió a raíz de solventar otro problema q preguntaba en otro hilo (ver http://www.forosdelweb.com/showthread.php?t=465216 si se desea), y por diferenciar ambas ...
  #1 (permalink)  
Antiguo 20/02/2007, 05:55
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
problema con una hyperlinkcolumn! (datagrid, asp .net)

Hola amigos,

esta cuestión partió a raíz de solventar otro problema q preguntaba en otro hilo (ver http://www.forosdelweb.com/f78/mostrar-contenido-directorio-465216/ si se desea), y por diferenciar ambas cuestiones he decidido separarlo.

yo quería mostrar el contenido de un subdirectorio en un datagrid, lo cual conseguí realizar, mi problema viene a la hora de descargar los archivos que dicho datagrid muestra... y es que utilicé una columna de hipervínculo (hyperlinkcolumn) la cual en teoría debía de realizar un enlace al archivo, pero no coge bien la ruta... digamos que si el archivo está en ./SuperPinwi, lo intenta buscar en el directorio actual y da error, porque evidentemente no lo encuentra.

estoy usando el dreamweaver para diseñar mi página web. Tengo el framework 1.1 de .NET y bueno el código que utilizo para mostar el contenido del directorio es el siguiente:

Código:
<%@ Import Namespace="System.IO" %>
<script language="VB" runat="server">
  Sub Page_Load(sender as Object, e as EventArgs)
    Dim dirInfo as New DirectoryInfo(Server.MapPath("SuperPinwi"))
    
    articleList.DataSource = dirInfo.GetFiles("*.aspx")
    articleList.DataBind()
  End Sub
</script>

<asp:DataGrid runat="server" id="articleList" Font-Name="Verdana"
    AutoGenerateColumns="False" AlternatingItemStyle-BackColor="#eeeeee"
    HeaderStyle-BackColor="Navy" HeaderStyle-ForeColor="White"
    HeaderStyle-Font-Size="15pt" HeaderStyle-Font-Bold="True">
  <Columns>
    <asp:HyperLinkColumn DataNavigateUrlField="Name" DataTextField="Name" 
           HeaderText="File Name" />
    <asp:BoundColumn DataField="LastWriteTime" HeaderText="Last Write Time"
        ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
    <asp:BoundColumn DataField="Length" HeaderText="File Size"
		ItemStyle-HorizontalAlign="Right" 
		DataFormatString="{0:#,### bytes}" />
  </Columns>
</asp:DataGrid>
he probado lo q propone nuestro compañero juamurex pero sin éxito. He utilizado su código con el visual studio pero tampoco me funciona. Llevo un montón de horas con esto y ya no sé qué hacer

por favor, a ver si alguien me puede iluminar un poco que ya no se me ocurre cómo salir del atasco.

muchas gracias por anticipado como siempre!!

saludos!!
  #2 (permalink)  
Antiguo 20/02/2007, 05:56
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: problema con una hyperlinkcolumn! (datagrid, asp .net)

quería dar a editar y di a citar jejeje Perdón

Última edición por SuperPinwi; 20/02/2007 a las 05:59 Razón: quiero borrarlo, me confundí!!
  #3 (permalink)  
Antiguo 22/02/2007, 05:24
Avatar de juamurex  
Fecha de Ingreso: febrero-2007
Ubicación: Gandía (Valencia)
Mensajes: 18
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: problema con una hyperlinkcolumn! (datagrid, asp .net)

Hola!

Bueno, no me he dado por vencido y he modificado el método Page_Load, ahora ya no tienes que utilizar eventos, que era lo que te daba error, aquí tienes el nuevo método:

Código:
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
        Dim dirInfo As New DirectoryInfo(Server.MapPath("SuperPinwi"))
        Dim listado As System.IO.FileInfo() = dirInfo.GetFiles("*.*")
        
        Dim tabla As New Data.DataTable
        tabla.Columns.Add("FullName")
        tabla.Columns.Add("Name")
        tabla.Columns.Add("LastWriteTime")
        tabla.Columns.Add("Length")
        
        For i As Integer = 0 To listado.Length - 1

            tabla.Rows.Add(listado(i).FullName.Replace(Server.MapPath(""), "~"), listado(i).Name, listado(i).LastWriteTime, listado(i).Length)                            
            
        Next
        
        articleList.DataSource = tabla
        articleList.DataBind()
        
End Sub
Te explico, el problema era que el valor que te devolvía la propiedad FullName era la ruta fisica en el sistema de directorios del pc, lo que queremos es la ruta al fichero desde el servidor. Para ello lo que he hecho es crear una DataTable con las columnas que nos interesan y he modificado el valor de FullName.

Esto si que debería funcionarte.

Saludos!!!
  #4 (permalink)  
Antiguo 22/02/2007, 11:10
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: problema con una hyperlinkcolumn! (datagrid, asp .net)

mil gracias Juan,

parece q ahora me da otros errores diferentes jejeje esto es la locura, con lo bien q me hubiera yo dedicado a la botánica :P

ahora me dice esto:

No se puede indizar la clase 'System.Web.UI.WebControls.DataGrid' porque no tiene ninguna propiedad predeterminada

en esta línea

tabla.Rows.Add(listado(i).FullName.Replace(Server. MapPath(""), "~"), listado(i).Name, listado(i).LastWriteTime, listado(i).Length)

ays, q dolor jejejeje

de verdad q muchas gracias, ya te invitaré a algo jejeje
  #5 (permalink)  
Antiguo 26/02/2007, 09:55
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: problema con una hyperlinkcolumn! (datagrid, asp .net)

solo para probar ya intentaste colocar el path "fisico" del que quieres acces??

ejemplo:

Cita:
...
Dim dirInfo as New DirectoryInfo("c:\directorio\SuperPinwi")
y deja todo lo demás tal cual lo tienes, porque tu code está bien el problema posiblemente sea el path.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #6 (permalink)  
Antiguo 27/02/2007, 01:44
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: problema con una hyperlinkcolumn! (datagrid, asp .net)

Cita:
Iniciado por RootK Ver Mensaje
solo para probar ya intentaste colocar el path "fisico" del que quieres acces??

ejemplo:



y deja todo lo demás tal cual lo tienes, porque tu code está bien el problema posiblemente sea el path.

Salu2
sí ya lo había probado y tampoco funciona

gracias de todos modos
  #7 (permalink)  
Antiguo 27/02/2007, 08:39
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Re: problema con una hyperlinkcolumn! (datagrid, asp .net)

si te lo comenté es por que a mí me funciona sin problemas y no le veo nada raro a tu code, no sé si tenga que ver con algunas politcas, o el directorio no tiene permisos para navegar en él, los tipos de archivo están en uso... etc..etc..

por eso te decía que probaras un path físico con cualquier tipo de archivo (no necesariamente un aspx)

suerte..
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
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 12:36.