Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Salvare lo stato della pagina in sessione

    Salve a tutti,
    ho la necessità di salvare lo stato della pagina in sessione, in modo che quando ci ritorno mi ritrovo nella situazione precedente.
    Ho trovato questo codice su internet:
    codice:
        protected override void SavePageStateToPersistenceMedium(object viewState)
        {
            string sessionKey = Session.SessionID + Request.ServerVariables["SCRIPT_NAME"];
            Session[sessionKey] = viewState;
        }
    
        protected override object LoadPageStateFromPersistenceMedium()
        {
            string sessionKey = Session.SessionID + Request.ServerVariables["SCRIPT_NAME"];
            return Session[sessionKey];
        }
    e ovviamente non funziona, nel senso che se esco e ritorno nella pagina, lo stato dei controlli è cambiato.
    Ho notato che quando carica la pagina, prima chiama il metodo Save e poi il metodo Load, vanificando sembrerebbe il salvataggio dello stato (al caricamento della pagina infatti i controlli sono di nuovo resettati).

    Sapete come posso fare?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    299
    Prova:
    codice:
    Protected Overrides Sub SavePageStateToPersistenceMedium(ByVal state As Object)
        Session("ViewState") = state
    End Sub
    
    Protected Overrides Function LoadPageStateFromPersistenceMedium() As Object
        Return Session("ViewState")
    End Function
    HTH! tK

  3. #3
    Originariamente inviato da tekanet
    Prova:
    codice:
    Protected Overrides Sub SavePageStateToPersistenceMedium(ByVal state As Object)
        Session("ViewState") = state
    End Sub
    
    Protected Overrides Function LoadPageStateFromPersistenceMedium() As Object
        Return Session("ViewState")
    End Function
    HTH! tK
    E' esattamente lo stesso codice che ho postato io, con la differenza che l'object "state" viene passato per valore. Ma in c# se lo passo per "reference" ottengo un errore di compilazione.

  4. #4

    Re: Salvare lo stato della pagina in sessione

    Originariamente inviato da kylnas1
    Ho notato che quando carica la pagina, prima chiama il metodo Save e poi il metodo Load, vanificando sembrerebbe il salvataggio dello stato (al caricamento della pagina infatti i controlli sono di nuovo resettati)
    a prima vista mi sembra che nel metodo Save... invece di salvare sempre e comunque dovresti inserire un controllo in modo che salvi ad esempio solo se lo stato non è stato mai salvato prima. Così quando ritorni sulla pagina la procedura Save... viene richiamata ma senza che riscriva inutilmente lo stato.
    Detto questo, perchè ti serve fare queste operazioni? Forse stai usando client particolari?
    Saluti a tutti
    Riccardo

  5. #5

    Re: Re: Salvare lo stato della pagina in sessione

    Originariamente inviato da riccardone
    a prima vista mi sembra che nel metodo Save... invece di salvare sempre e comunque dovresti inserire un controllo in modo che salvi ad esempio solo se lo stato non è stato mai salvato prima. Così quando ritorni sulla pagina la procedura Save... viene richiamata ma senza che riscriva inutilmente lo stato.
    Detto questo, perchè ti serve fare queste operazioni? Forse stai usando client particolari?
    Mi serve semplicemente per ripristinare lo stato della pagina se ci ritorno, tutto qui.

  6. #6
    Come è noto, asp.net ha già la sua gestione di default dello stato della pagina che quindi viene mantenuto tra un postback e l'altro. Da quello che si può vedere nella documentazione
    http://msdn.microsoft.com/en-us/libr...persister.aspx
    c'e' la possibilità di personalizzare la gestione dello stato ma non è di semplice gestione e mi sembra che si usi quando si maneggiano client particolari (es. mobile).

    Se il tuo scopo è memorizzare delle informazioni legate all'utente e recuperarle in modo da cambiare l'item selezionato nella dropdowlist o il testo inserito in una textbox o altro anche dopo che l'utente ha lasciato la pagina puoi servirti del Profile. Il profilo utente è un contenitore di informazioni (chiave, valore) che puoi preventivamente definire nel web.config e che rimangono legate all'utente
    http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx
    Saluti a tutti
    Riccardo

  7. #7
    Originariamente inviato da riccardone
    Come è noto, asp.net ha già la sua gestione di default dello stato della pagina che quindi viene mantenuto tra un postback e l'altro. Da quello che si può vedere nella documentazione
    http://msdn.microsoft.com/en-us/libr...persister.aspx
    c'e' la possibilità di personalizzare la gestione dello stato ma non è di semplice gestione e mi sembra che si usi quando si maneggiano client particolari (es. mobile).

    Se il tuo scopo è memorizzare delle informazioni legate all'utente e recuperarle in modo da cambiare l'item selezionato nella dropdowlist o il testo inserito in una textbox o altro anche dopo che l'utente ha lasciato la pagina puoi servirti del Profile. Il profilo utente è un contenitore di informazioni (chiave, valore) che puoi preventivamente definire nel web.config e che rimangono legate all'utente
    http://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx
    Ho utilizzato le sessioni.

  8. #8
    Bene.
    Ma se poi dovrai recuperare il dato anche quando l'utente chiude il browser e ritorna sulla tua pagina? Ricorda che c'e' sempre il Profile ad aiutarti oltre al tradizionale rosario.
    Saluti a tutti
    Riccardo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.