47 messaggi dal 14 dicembre 2001
ho un sito composto da 3 frame (uno sopra, una laterale sinistro e uno centrale)

nel frame sinistro presento il menu che dinamicamente cambia e al centro eseguo tutte le mie pagine asp.

in alto il banner fisso

ho questo problema :

se in una pagina qualsiasi si preme il pulsante F5 invece di aggiornare la pagina corrente mi presenta sempre la mia prima pagina , che è la classica pagina di login

why ?

ale
2.584 messaggi dal 14 maggio 2001
Con F5 ricarichi la pagina che c'è nella barra degli indirizzi del brower...

cosa hai come valore prima di schiacciare F5?
118 messaggi dal 13 gennaio 2004
a cosa ti serve ????

se vuoi aggiornare solo un frame devi andare nel frame desiderato tasto destro del mose e poi seleziona aggiorna e vedrai che ti si aggiorna solo il frame selezionato...
Altrimenti lo puoi fare anche da codice...

Punto Interrogativo
11.886 messaggi dal 09 febbraio 2002
Contributi
Puoi risolvere usando una variabile di sessione.

Molto probabilmente la tua pagina che contiene il frameset è statica ed è normale che aggiornando con F5 essendo ricaricata ti ripropone le pagine iniziali. Quello che devi fare è renderla dinamica.

Putroppo gestire i frame non è sempre facile, ma con un po' di pazienza riuscirai a far funzionare tutto. Ti faccio vedere il codice che uso io nella mia pagina che contiene il frameset:

frameset.asp
<html>
<head>
</head>

<%
pagina = Session("pagina")
if pagina = "" then
pagina = "principale.asp"
end if
End Sub
</script>
<frameset framespacing="0" border="0" cols="200,0,*" frameborder="0">
  <frame name="menu" scrolling="no" target="principale" src="menu.asp" noresize>
  <frame name="principale" src="<%=pagina%>" noresize>
  </frameset>
  <noframes>
  <body>
  <p>La pagina corrente utilizza i frame. Questa caratteristica non è
  supportata dal browser in uso.</p>
  </body>
  </noframes>
</frameset>
</html>


la riga "interessante" è questa:
<frame name="principale" src="<%=pagina%>" noresize>

vedi che l'src del frame principale è dinamico? Se guardi anche quel poco di codice asp che c'è vedrai che assume il valore di Session("pagina"). Se questa variabile è vuota, verrà mostrata la pagina principale.

All'inizio di ognuna delle tue pagine che andranno a visulizzarsi nel frame principale, mettici questa linea di codice.
<%Session("pagina") = Request.ServerVariables("SCRIPT_NAME")%>

in questo modo Session("pagina") viene valorizzata con il percorso della pagina che si sta visualizzando attualmente.

Al riavvio con F5 ti verrà servita l'ultima pagina visualizzata.
Se oltre al percorso vuoi tener traccia anche dei dati che avevi passato per querystring, fai:
<%Session("pagina") = Request.ServerVariables("SCRIPT_NAME") & "?" & Request.QueryString%>

se non ti funziona fai un'altro post, probabilmente ho sbagliato a scrivere qualcosa.
Comunque come tecnica funziona, lo sto usando da qualche tempo.

ciao

Modificato da BrightSoul il 13 gennaio 2004 15.45 -

Enjoy learning and just keep making
47 messaggi dal 14 dicembre 2001
questa tecnica funziona ma .....

se dopo aver navigato il mio cliente non chiude la sessione (chiudendo l'istanza del browser) succede che se volesse visualizzare il contenuto della homepage non può + .... si carica sempre quello che sta dentro la variabile di sessione.

ho provato semplicemente digitando l'indirizzo principale dentro la casella di testo indirizzo del browser e poi invio, ovviamente dopo aver navigato un pò ....





11.886 messaggi dal 09 febbraio 2002
Contributi
per tornare all'homepage puoi metterci un link, come per le altre pagine.

=Oppure=
Puoi predisporre una seconda variabile di sessione:

<%
Session("pagina") = Request.ServerVariables("SCRIPT_NAME") & "?" & Request.QueryString
Session("ora") = Now()
%>

mettendoci l'ora puoi fare in modo che il redirect all'ultima pagina avvenga entro tot minuti, indipendentemente dalla durata della sessione.
Esempio, se Session("ora") è vecchia di due minuti, ignora il contenuto di Session("pagina") e vai direttamente all'homepage. Cambia il codice nel frameset in questo modo:

<%
pagina = Session("pagina")
'in datediff, n rappresenta i minuti
if pagina = "" OR DateDiff("n", Now(), Cdate(Session("ora"))) > 2 then
pagina = "principale.asp"
end if
End Sub
%>

cioè se pagina è vuota o se sono passati più di due minuti, la ridirezione avviene a principale.asp, l'homepage.
ciao
Non saprei in che altro modo risolvere...avendo dei frame non ci sono tante altre soluzioni, purtroppo...


Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.