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

Recarga de página

Estas en el tema de Recarga de página en el foro de .NET en Foros del Web. Hola a todos; Tengo un aspx que me muestra las imágenes correspondientes a un registro de la base de datos. Si pincho sobre las imáganes, ...
  #1 (permalink)  
Antiguo 06/10/2004, 16:46
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Recarga de página

Hola a todos;

Tengo un aspx que me muestra las imágenes correspondientes a un registro de la base de datos. Si pincho sobre las imáganes, esta me desaparece (la sustituyo por una en blanco), y elimina el valor del campo de la bd en el que se me indica la dirección de la imagen (para dar el efecto de que se ha borrado).

En la misma página tengo un upload de ficheros, de manera que el cliente busca la foto en su disco duro, y una vez encontrada le da al botón de guardar.

En teoría debería recargar la página (ya que no pongo el If ispostback en el page load, y ahí es donde cargo las imágenes), para que tras darle a guardar, me actualizase la página y se viese la nueva foto metida...pero sólo si le doy 2 veces consecutivas a guardar, me aparece en pantalla.

Alguien sabe por qué me sucede esto???

Un saludo.
__________________
Pide lo que quieras...y luego paga por ello
  #2 (permalink)  
Antiguo 06/10/2004, 19:01
Avatar de sindestino  
Fecha de Ingreso: noviembre-2003
Ubicación: xxxx xxxx
Mensajes: 270
Antigüedad: 20 años, 6 meses
Puntos: 0
No se si entendí bien pero si la llamada a la función que carga las imágenes la hacés en el Page_Load es normal que la foto recién ingresada aparezca en ese momento. Recordá que siempre que se ejecuta un evento de servidor, antes de ir a dicho procedimiento (btnGuardar_Click) pasa PRIMERO por el Page_Load, lo cual me hace pensar que estás recargando las imágenes ANTES de que se ejecute el evento del botón guardar.

te recomiendo que hagas la llamada a la función de carga de imágenes en el Page_Load solo si no es postback y que en el evento de guardar, luego de almacenar el archivo, también llames a dicha función.

Espero haberte entendido bien, saludos
  #3 (permalink)  
Antiguo 07/10/2004, 03:57
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
No, es algo parecido. No me expliqué bien.

Tengo un webform en el que puedo hacer dos cosas: Borrar una serie de fotografías que se me presentan (leyéndolas de una base de datos), y sustituir los huecos que quedan al borrarlas por otras.

De tal manera, borras al pulsar sobre una foto y el hueco se queda en blanco . Luego, con un upload, capturas otra foto del disco duro y se guarda en la base de datos (esto lo hace bien), y se muestra la imagen en el hueco en blanco dejado al borrar la foto.

Mi problema es que al darle al guardar la foto capturada (tengo el botón upload para buscar la foto, y un botón guardar para meter la ruta en la base de datos), en vez de mostrarme en pantalla la foto que acabo de guardar, me muestra la foto que acabo de borrar.

Es decir, en vez de coger el fichero que acabo de guardar, me coge el fichero que he sustituido. Ambos se llaman igual (es una lista de seis fotos que se llaman identificador_01...identificador_06), y la sustitución del fichero me la hace bien...pero me coge el fichero viejo en vez del nuevo.

Sin embargo, si corto la ejecución y vuelvo a ejecutar, entonces ya me presenta la foto correctamente.

Es un poco lío, pero resumiendo podría decir que al recargar la página, mientras no cierre la sesión y la vuelva a abrir, no me coge los cambios.

Espero haberme medio explicado.

Un saludo.
__________________
Pide lo que quieras...y luego paga por ello
  #4 (permalink)  
Antiguo 07/10/2004, 04:00
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Ah, en el page load sí cargo las imágenes, pero sólo si no es postback (para que sólo me lo ejecute la primera vez). Así, tras pulsar el guardar, me salta el page load, y ejecuta una función guardar que es igual a la del page load (el page load me lo hace correcto)...el problema viene cuando recarga, que sigue leyendo el antiguo fichero en vez del que acabo de subir.
__________________
Pide lo que quieras...y luego paga por ello
  #5 (permalink)  
Antiguo 07/10/2004, 09:00
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
Hola luiscl, la verdad no te capto bien, pero haciendo caso a ésto:

Cita:
Sin embargo, si corto la ejecución y vuelvo a ejecutar, entonces ya me presenta la foto correctamente.
Porque no haces un Response.Redirect sobre tu misma página despues de que haces todos los pasos de tu evento btnGuardar_Click

Ejemplo.
Cita:
..btnGuardar_Click...
...
...
bla bla..

Response.Redirect(Request.RawUrl)
..
Con ello no haces postback si no haces un load de la page... pruebalo y nos cuentas que tal.

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

Exentrit - Soluciones SharePoint & Net
  #6 (permalink)  
Antiguo 07/10/2004, 17:43
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Hola a los dos. Gracias por responder.

RootK, he probado el request.RawUrl, y sigo con el mismo problema. A ver si puede explicarlo algo mejor.

Tengo seis fotografías de una casa. El propietario puede cambiar esas fotografías, para lo cual entra en una webform en el que ve las seis fotos. Se llaman 01, 02,...,06. Si pulsa sobre una foto, por ejemplo, la 01, desaparece y la base de datos deja el campo Imagen01 en blanco. Hasta aquí todo correcto.

Ahora el cliente ve cinco fotos. Tiene el típico botón de "examinar", para buscar la fotografía nueva. La encuentro, y cuando le da a Guardar, en teoría debería aparecer la nueva foto, renombrada a 01, en el lugar que ha dejado la borrada...pero la que me aparece de nuevo es la que he borrado...parece ser que lo que hace mal es que recarga la página antes de que el archivo .jpg nuevo sustituya al viejo, porque si cierro y vuelvo a ejecutar, la foto nueva ya está ahí.

He probado a redirigir incluso a otra página igual a la primera, con lo que debería cargar el nuevo archivo .jpg...pero es como si el viejo lo tuviera en una variable sessión, y se mantuviese mientras no cierre la sesión.

Yo ya me he vuelto loco, y he probado a todo, menos a amenazar al Visual Studio con mandarle a Bush y a Sharon...ese el siguiente paso...

Un saludo.
__________________
Pide lo que quieras...y luego paga por ello
  #7 (permalink)  
Antiguo 07/10/2004, 19:22
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
He probado a eliminar del directorio los archivos que borro, y si recargo la página, me siguen saliendo los mismos, en vez de los nuevos...ufff, ya no sé qué hacer.
__________________
Pide lo que quieras...y luego paga por ello
  #8 (permalink)  
Antiguo 07/10/2004, 19:28
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Lo más curioso es que si recargo la página diréctamente en el explorer, pulsando F5, me salen las fotos correctas!!!
__________________
Pide lo que quieras...y luego paga por ello
  #9 (permalink)  
Antiguo 08/10/2004, 09:01
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
Todo ésto me suena a que es problema de caché...

HAz una prueba de ésta forma:

Tienes dos imagenes que mandas a llamar (img1, img2) y deseas cambiar img2.. obviamente lo que haces es renombrar y cargas nuevamente img1, img2 a diferencia que img2 ya está renombrada.. hasta aqui bien..

Pero aqui viene el detalle (solo para probar) en vez de renombrar porque no dejas guardada tu img2 y en vez de renombrar la imágen la guardas con otro nombre por ejemplo img2_2 y esa imágen es la que vas a mandar a llamar.

Intenta con eso, yo estoy casi seguro que es problema de cache del server y es por eso que hasta que hacer un refresh (f5) se ven los cambios.

Me cuentas que tal te fue..

Saludo2
  #10 (permalink)  
Antiguo 08/10/2004, 10:50
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Tienes razón, Rootk, es un problema de caché.

Aunque guarde el archivo con otro nombre y asigne la imagen (imgfoto1.imageurl) a ese archivo nuevo...me sigue recargando la antigua. Supongo que se trata de borrar la la memoria caché...pero no sé cómo se hace.
__________________
Pide lo que quieras...y luego paga por ello
  #11 (permalink)  
Antiguo 11/10/2004, 12:30
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Hola Rootk;

Ya lo he conseguido. El problema no está en la memoria caché del servidor, sino en el proxy de Telefonica. He probado cien maneras distintas para saltarme esa caché, pero ninguna funcionba.

Al final me he puesto a ver cómo lo podía hacer con archivos intermedios, y aunque de primeras no me funcionaba, al final sí he podido hacerlo, guardando 2 veces el archivo: Uno el correcto, el que utiliza la bd, y otro el intermedio, que es el que presento en pantalla. El segundo no me lo "cachea", supongo que porque no hay referencias a él en la bd.

Rootk, perdona que te diga, pero eres un genio de esto de la programación.

Me saco el sombrero ante tí!!!
__________________
Pide lo que quieras...y luego paga por ello
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 11:32.