11/01/2007, 11:02
|
| | Fecha de Ingreso: junio-2006
Mensajes: 109
Antigüedad: 18 años, 6 meses Puntos: 2 | |
Re: Evitar refresco de pantalla Puedes validar cuando el usuario le de a la tecla F5 o que que le al mouse click derecho y luego refresh.
yo tengo la siguiente función en una pagina base :
#Region "Refresh(F5)"
Public ReadOnly Property IsRefresh() As Boolean
Get
Return _isRefresh
End Get
End Property
Private _refreshState As Boolean
Private _isRefresh As Boolean
Protected Overrides Sub LoadViewState(ByVal savedState As Object)
Dim AllStates As Object() = savedState
MyBase.LoadViewState(AllStates(0))
_refreshState = Boolean.Parse(AllStates(1))
_isRefresh = _refreshState = Session("__ISREFRESH")
End Sub
Protected Overrides Function SaveViewState() As Object
Session("__ISREFRESH") = _refreshState
Dim AllStates() As Object = New Object(2) {}
AllStates(0) = MyBase.SaveViewState
AllStates(1) = Not (_refreshState)
Return AllStates
End Function
#End Region
Luego en el evento Load de la pagina base colocamos:
Me.Page.Response.Cache.SetNoStore()
Me.Page.Response.AddHeader("PRAGMA", "NOCACHE")
Me.Page.Response.Expires = -1
Me.Page.Response.Cache.SetCacheability(HttpCacheab ility.NoCache)
Con eso puedes mandar llamar la propiedad IsRefresh() la cual te regresa un boolean con un true si es un refresh y un false si no lo es. Puedes colocar una validación sobre todo en los eventos que afectan base de datos para que no hagas dos viajes a la misma...
Saludos espero te ayude |