Problema con pagina scaduta

mercoledì 24 marzo 2010 - 10.06

michela85 Profilo | Newbie

Ciao a tutti!

il mio problema è questo:

Dopo aver effettuato una ricerca visualizzo tutti i risultati in un elenco, facendo clic su uno di essi ne visualizzo il dettaglio. Il problema è che usando il tasto back del browser la pagina precedente (quella dell'elenco) risulta scaduta...

Ho provato diverse soluzioni (la maggior parte trovate proprio su questo sito)

Ho provato ad usare le session, ad aggiungere in web.config
<httpRuntime executionTimeout="360000" />

a mettere in Page_Load
Response.CacheControl = "Public"

oppure
Response.Cache.SetCacheability(HttpCacheability.Server) Response.Cache.SetExpires(System.DateTime.Now.AddSeconds(10000))

o ancora
Page.MaintainScrollPositionOnPostBack = True


sia singolarmente che in contemporanea ma niente...

C'è qualcuno che mi sa aiutare?

Grazie in anticipo!

balfaz Profilo | Expert

ciao michela ti dico subito una cosa
>Page.MaintainScrollPositionOnPostBack = True
serve esclusivamente per farsiche alla fine di un refresh della pagina questa torne alla stessa posizione della pagina dove si trovava prima del refresh (utile quando le pagine sono molto lunghe)

poi il tuo problema ci puoi illustrare come fai a caricare questi dati nell'elenco cioè passi parametri attraverso l'url oppure usi le session o qualcos'altro?

facci sapere
Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio

michela85 Profilo | Newbie

premetto che il sito non l'ho fatto io...

da quello che ho capito analizzando un codice (senza nessun commento!) c'è un form all'interno di un
<asp:Updatepanel>, ma nella pagina in cui viene visualizzato l'elenco le varie informazioni per la query vengono prese, ad esempio con:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

e inoltre c'è questo controllo
ElseIf Not Page.PreviousPage Is Nothing Then

sul then ho la lettura dei dati secondo la modalità che ti ho detto, mentre sull'else la stringa sql è presa dalla sessione...

Nel Page_Load della pagina dove c'è il form ci sono i seguenti comandi:
Response.Buffer = True Response.ExpiresAbsolute = DateTime.Now.AddDays(-1) Response.Expires = 0 Response.CacheControl = "no-cache"
influiscono?

Grazie

balfaz Profilo | Expert

ti dico già che purtroppo lavorando con un updatepanel e molto probabile incontrarsi di fronte a questi problemi, cmq prova un po a togliere questa riga

> Response.ExpiresAbsolute = DateTime.Now.AddDays(-1)

ma comunque ti consiglierei di trovare una maniera di tornare alla pagina precedente cioe all'elenco richiamando la pagina, perchè come ben te ne sei accorta il problema e prorpio nella gestione cache del browser.

provaci, pensaci e fammi sapere

Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio

michela85 Profilo | Newbie

niente da fare...

Nella pagina di dettaglio io ho un tasto "torna all'elenco" che mi fa tornare indietro sull'elenco corretto perchè ho questa struttura:

- Nella pagina di dettaglio ho nella colonna destra il form con dentro i medesimi valori della ricerca iniziale

- Nella pagina dell'elenco ho un controllo che verifica se arrivo dal form della ricerca iniziale o dal form della colonna destra e a seconda del responso prende i dati dall'uno o dall'altro form

Il problema è che con il tasto back del browser questi controlli non servono a nulla....

balfaz Profilo | Expert

allora prova a bloccare il tasto indietro del browser

scrive nella tag <head> della pagina
<script type="text/javascript">
window.history.forward(1);
</script>

forse questo ti potrebbe aiutare ma comunque non è detto che non ci sia un'altra ,maniera di sistemare la faccenda.
Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5