Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Evitar submit al refrescar la pagina

556 views
Skip to first unread message

ivan13p...@gmail.com

unread,
Jul 23, 2008, 11:51:22 AM7/23/08
to
Buenas Compañeros..

Tengo un problemita, que no tengo idea de como resolverlo. :S

Estoy trabajando con VS 2003.

Sucede que tengo una pagina la cual tiene un boton de servidor que en
su evento lo que hace es agregar una nueva fila a un dataTable que
mantengo en memoria con una variable session.

Eso funciona perfecto.

Cuando el usuario hace un refrescamiento de la pagina con el boton
refresh del explorar o en tal caso con la tecla F5, me repite el
summit del evento click del boton y agrega una nueva fila al Datatable
que mantengo en memoria.

Es decir, que si le doy 10 veces al boton Refresh del explorador,
entonce me inserta 10 nuevas filas al DataTable.

Como hago para hacer que se agregue una nueva fila al Datatable con
solo exclusivamente darle click a mi boton de servidor ???

Si me pueden ayudar....

Saludos Cordiales y mis Agradecimientos de antemano.

Matias Iacono

unread,
Jul 23, 2008, 1:16:04 PM7/23/08
to
Una aclaracion. El F5 no hace submit de la pagina. Lo que hace es re enviar o
re hacer la accion anterior que realizo el navegador para poder obtener los
resultados como vinieron en su momento.

O sea que si no apretas el boton (no agrega nada), y apretas F5, veras que
tampoco hace nada.

Entonces, para el codigo que esta por detras, independiente de las acciones
del usuario, toma lo que el navegador le esta enviando. En este caso, una
simulacion de que el boton fue apretado.

Muchas veces lo dije, y lo sostengo. Creo que una aplicacion web es eso, una
aplicacion web y no otra cosa. Con esto digo que es solo HTML intepretado por
un contenedor, el cual tiene sus propios comportamientos, y tu aplicacion no
deberia hacer nada para tratar de "someterlos". Que de hecho, al intentar
hacerlo te encontraras con cientos de problemas dependiendo el navegador, el
sistema operativo, la seguridad, y muchos etc.

Ahora, si sigues pensando en ver una solucion de esto, una posible seria
romper el concepto de la recarga con re envio de datos al servidor.

El metodo mas comun es que una vez procesas el boton apretado, redirijas al
usuario a otra pagina, y de ahi, vuelvas a la que muestra los valores. Asi,
al apretar F5, los datos no existen y no son enviados. Lo que no te da
garantias que el usuario pueda hacer hacia atras y apretar F5.

Saludos.

--
--
Matías Iacono
Microsoft MVP
Orador Regional INETA
http://mvpfiles.spaces.live.com

jcastro

unread,
Jul 23, 2008, 1:56:27 PM7/23/08
to
On 23 jul, 13:16, Matias Iacono
> > Saludos Cordiales y mis Agradecimientos de antemano.- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Es cierto, o tambien puedes ocupar una solucion mas sucia pero mas
facil de implementar de ocupar una variable de sesion. La primera vez
que agregas una columna, guardas en una variable de sesion algun flag
que dice que el cambio se realizo, si el usuario presiona f5 entonces
si la variable de sesion tiene el valor de "ya ingresado" entonces
simplemente no reingresas ese valor.

ivan13p...@gmail.com

unread,
Jul 23, 2008, 2:30:58 PM7/23/08
to
Gracias Matias por la aclaración, y como tu dices.. si quiero resolver
este problema voy a tener implementar la forma sucia como me
recomienda jcastro, pero con un campo hidden y con javascript.

Pero pregunto,, no existe una forma de limpiar el request??


Saludos..

Gracias por sus respuestas

0 new messages