ASP.NET - Problemas con un hyperlink en un gridview

 
Vista:

Problemas con un hyperlink en un gridview

Publicado por Francisco O. (22 intervenciones) el 13/11/2009 17:37:21
Hola a todos.
Tengo el siguiente problema, en un gridview tengo dos columnas TemplateField en la cual en una hay un hyperlink y en la otra un fileupload. Busco una fila por el ID y me muestra un registro, en ese registro puedo subir un archivo mediante la columna que tiene el fileupload, este archivo queda en el servidor con el ID del registro (todos los archivos quedan con el nombre del ID del registro), luego actualizo la gridview y en el RowDataBound enlazo el hyperlink al archivo subido al servidor, luego verifico que el archivo se haya enzaldo correctamencon el hyperlink. hasta ahi no hay problema, el problema ocurrre cuando vuelvo a subir en la misma fila del gridview otro documento, el fileupload sobreescribe el anterior (el nombre de archivo sigue siendo el mismo), pero al volver a verificar el archivo con el hyperlink, me muestra el anterior, es como si quedara en algun temporal.
Alguien sabe a que se debe esto?
Y como puedo solucionarlo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con un hyperlink en un gridview

Publicado por Khristian (335 intervenciones) el 14/11/2009 19:49:10
Queda en la cache... pero de tu explorador.

dale algun tipo de indicador de version al nombre del archivo.

es por eso que yo en mis aplicacioones les asigno un ID unico a los archivos, y en las tablas que necesitan el archivo, guardo el Nº asignado.

Por ejemplo:
tengo un procedimiento almacenado en SQL que me da numeros correlativos

Asi le doy al archivo en Nº siguiente, y ese numero lo guardo en el registro que lo usó.
Si le cargo otro archivo, tendra otro Nº

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con un hyperlink en un gridview

Publicado por Francisco O. (22 intervenciones) el 15/11/2009 16:38:42
Dejame ver si te entendi bien, por ej, tengo un registro de la siguiente forma

tbl_id=1
tbl_doc="1.doc"
nombre de archivo fisico subido en servidor "1.doc"

ahora si subo otro archvio para el mimso registro desde la gridview quedaria algo asi:

tbl_id=1
tbl_doc="2.doc"
nombre de archivo fisico en servidor "2.doc"

¿si es asi, que paso con el archivo "1.doc" del servidor, queda fisicamente o se puede eliminar atraves de un procedimiento, por que ahora el registro tiene el nombre de achivo "2.doc"?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con un hyperlink en un gridview

Publicado por Khristian (335 intervenciones) el 15/11/2009 21:51:27
Claro.... |
solo que recuerda que la tabla, debe tener una columna donde se almacenará el numero del archivo.

ejemplo:

Tabla informes

ID | DEPARTAMENTO | FECHA | AUTOR | ARCHIVO

12 | FINANZAS | 12-1-2009 | JUAN | 2.doc

Ahora, cuando tu cargas un archivo, obviamente y por programación, tu puedes saber si hay un archivo ya cargado.

Por ejemplo: Cuando ya se guardó satisfactoriamente el nuevo archivo, eliminas el anterior, si es que lo habia.

Cuando inicias el proceso del guardado del archivo debes verificar si esa fila ya tenia un archivo cargado. Haces un SELECT archivo FROM informes WHERE id=12
Verificas si el valor de la primera fila devuelta es nulo o no String.IsNullOrEmpty()
- si es nulo o vacio.... solo se sigue el proceso de guardado
- en caso contrario, guardas en una variable temporal en nombre del archivo antiguo, para que una vez finalizado el proceso de guardado del nuevo archivo, procedas a guardar el archivo anterior.

CONSEJO:
Sabes.... yo personalmente no soy partidario de eliminar informacion... asi podemos saber todo lo que pasa en nuestros sistemas. (Y en verdad... es muy util)
Creo que yo le daria esta solucion.

TABLA: Departamentos
IDdpto | DEPARTAMENTO

TABLA: Informes
IDinf | IDdpto | FECHA | AUTOR | ARCHIVO

Con una relacion uno a muchos.

asi, podras guardar los archivos por numeracion secuencial, y podras permitir que el usuario tenga el historial de los dctos cargados a cada fila.

Obviamente, por programacion puedes mostrar solo el ultimo. Solo basta que pongas en tu gridview una columna de tipo plantilla, y dentro pongas un gridview que muestre los informes filtrados para cada fila. (y si lo mejoras, puedes mostrar solo el ultimo)

Ojala entiendas la idea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con un hyperlink en un gridview

Publicado por Francisco O. (22 intervenciones) el 16/11/2009 14:00:18
Clarismo como el agua.
Solo tengo una duda a la cual no vi en tus comentarios, el archivo físico que esta el el servidor, al cual ya no necesito, lo puedo eliminar de algun modo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con un hyperlink en un gridview

Publicado por Khristian (335 intervenciones) el 16/11/2009 20:49:08
Claro...
Puedes eliminarlos con las clases de manejo de archivos y carpetas.
Recuerda que al eliminar un archivo no debes usar la ruta virtual... sino la fisica.

dim nomArchivo="~/files/1225.doc"

File.Delete(Server.MapPath(nomArchivo));

Con eso eliminas el archivo de la ruta fisica, la cual es obtenida desde la ruta virtual.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con un hyperlink en un gridview

Publicado por Francisco O. (22 intervenciones) el 17/11/2009 16:44:10
OK. Gracias
Tus respuestas fueron de gran ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar