Caricare menu in variabile session

mercoledì 16 gennaio 2008 - 10.24

d@dora Profilo | Senior Member

ciao a tutti, ho la necessita' di salvarmi un intero menu in una varibile di sessione, per poterlo richiamare su n pagine diverse senza doverlo ricaricare da db, ma non riesco, perche' quando lo ricarico sulla nuova pagina risulta vuoto. Ho provato a caricare banalmente il menu in una variabile session con
session("tr") = menu

e poi sull nuova pagina

menu=session("tr")
ma il risultato non e' stato quello voluto.

mi sapete dire dove sbaglio??

Ho notato che il menu viene invece caricato, ma non si vede sulla nuova pagina: ma perche????

Wamba Profilo | Expert

L'errore credo sia nella pagina di destinazione.
Il modo in cui setti il risultato valorizza una variabile, non l'oggetto contenuto dalla classe page.
Hai 2 possibilità:
1) Page.Controls.add(Session("menu"))
2) In session salvi una tua struttura dati che rappresenta ciò che è caricato nel menu e lo inserisci nei menu in ogni pagina. (Se l'accesso lo fai in ado.net puoi pensare di salvarti il dataset).
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
blogs.ugidotnet.org/WamBlog/

d@dora Profilo | Senior Member

l'ho risolto looppando tra ogni elemento del menu caricato in session....
non mi piace molto, ma risolve il problema :-))

ciao e grazie

Wamba Profilo | Expert

è per il motivo che dicevo prima con "variabile =" sovrascrivi il puntatore, con il loop aggiungi al menu esistente.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
blogs.ugidotnet.org/WamBlog/

cipcip Profilo | Newbie

anche se fosse un applicazione visitata da pochi utenti non è corretto memorizzare il menu nelal sessione a mio avviso , al massimo puoi utilizzare la cache

d@dora Profilo | Senior Member

>anche se fosse un applicazione visitata da pochi utenti non è
>corretto memorizzare il menu nelal sessione a mio avviso , al
>massimo puoi utilizzare la cache

mi puoi spiegare il perche ??? Questa mia applicazione ha un menu' che viene ricreato su ogni pagina prendendo i dati da db: in questo modo e' solo la prima pagina che viene aperta ad accedere al db, dopodiche, le altre recuperano il menu dalla session: quali sono le controindicazioni ??

ciao e grazie

cipcip Profilo | Newbie

perche' in questo modo si crea un menu in memoria per ogni visitatore invece se usi la cache o una variabile statica per memorizzare il menu, lo recuperi una sola volta dal db nel corso dell'applicazione, poi se questo menu deve subire delle modificazioni in base per esempio al livello dell'utente puoi costruire queste modificazioni a runtime oppure creare una variabile statica per ogni livello utente ecc.....

d@dora Profilo | Senior Member

>perche' in questo modo si crea un menu in memoria per ogni visitatore
>invece se usi la cache o una variabile statica per memorizzare
>il menu, lo recuperi una sola volta dal db nel corso dell'applicazione,
>poi se questo menu deve subire delle modificazioni in base per
>esempio al livello dell'utente puoi costruire queste modificazioni
>a runtime oppure creare una variabile statica per ogni livello
>utente ecc.....


in effetti posso caricarlo anche a livello application, anche se cmq, non ha molti contatti, quindi l'appicazione scade molto spesso....

ciao e grazie

Wamba Profilo | Expert

ricordati di chiudere il thread
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
blogs.ugidotnet.org/WamBlog/
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5