Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Conservazione dati tra due pagine e sessioni
lunedì 20 agosto 2007 - 20.13
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
lun 20 ago 2007 - 20:13
salve ragazzi,
qualcuno di voi gentilmente potrebbe spiegarmi come fare per mantenere i dati tra due pagine?
ve lo chiedo perchè vorrei risolvere questa situazione:
ho una anagrafica con due pagine: la prima mi fa vedere alcuni dati di cittadini presi da un database, e questa pagina contiene il pulsante 'modifica' che deve prendere il testo da una textbox che contiene il codice identificativo del cittadino (che poi è la chiave primaria per la tabella che contiene il record selezionato) e portarlo nella pagina di destinazione.
la seconda pagina, che è la destinazione, serve invece per modificare quanto si vede nella prima, cioè in essa vedo i dati del cittadino scelto mediante la textbox della pagina sorgente, e con opportuni campi vado a modificare questi dati reperiti.
il codice cittadino preso dalla pag sorgente lo immetto cioè in una textbox della pagina destinazione,che poi uso per fornire il parametro per la where della query di modifica
nella prima pagina uso server.transfer("dest.aspx",true"), mentre in quella di destinazione uso
textboxmia.text= request.form["textboxdellapaginasorgente"].tostring();
il passaggio dei dati lo vedo, ma all'atto della update vedo che, malgrado le modifiche che effettuo, è come se non facessi nulla, alla pressione del pulsante per confermare l'update non ottengo alcuna modifica...
ora non vorrei che il parametro passato in realtà non fosse stato passato affatto....
essendo che il concetto di conservazione di dati tra pagine web non mi è molto chiaro, qualcuno di voi potrebbe spiegarmi come funziona? e soprattutto potete chiarirmi il concetto di sessione e viewstate?sono concetti di cui ho sentito parlare, ma non ne ho esperienza...
e poi... come posso gestire queste cose nel mio caso?
grazie in anticipo a chi risponderà!
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
n3mesi
Profilo
| Newbie
38
messaggi | Data Invio:
mar 21 ago 2007 - 08:53
Senza utilizzare la sessione, puoi comunque passare i parametri da una pagina all'altra tramite query string.
Puoi fare in questo modo:
response.redirect("tuaPaginaDestinazione.aspx?CodCittadino=" + tuatextbox.text);
Poi nella pagina di destinazione riprendi questo valore sulla pageload:
string (o int, non so come ce l'hai) codice = Request.QueryString["CodCittadino"];
In alternativa, puoi utilizzare la sessione, ma è più performante la query string.
Con la sessione:
Session["CodCittadino"] = tuatextbox.text;
Poi nella pagina di destinazione, sempre sulla page load, riprendi questo valore:
se il codice è una stringa:
string codice = (string)Session["CodCittadino"];
se è un intero:
int codice = (int)Session["CodCittadino"];
io ti consiglio di utilizzare la query string.
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
mar 21 ago 2007 - 11:35
ma quello che hai suggerito tu funziona solo tra due pagine, o conserva i dati anche per altre pagine aperte in futuro?
e se voglio mantenere più dati nello stesso tempo?
te l'ho chiesto perchè il sito che realizzo si propone di far vedere i dati di un certo utente dopo che questi si è loggato, e cioè estrazione dei dati, modifica ecc, il tutto chiaramente in diverse pagine che di volta in volta devono tirare fuori i giusti dati in base al login...
ti ho poi parlato delle sessioni perchè da qc parte ho letto che le sessioni vengono aperte dopo il login, e chiuse all'uscita dal sito, ma di più non so...e se non sbaglio si usano nel caso di passaggi di dati tra molte pagine diverse...
in internet non ho ancora trovato una pagina, un articolo ecc che mi spieghino chiaramente come funziona il meccanismo della conservazione di dati nella totale durata di un login-logout di un utente..
cosa mi suggeriresti di fare?
cmq grazie per il consiglio
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
n3mesi
Profilo
| Newbie
38
messaggi | Data Invio:
mar 21 ago 2007 - 11:46
Allora in questo caso devi per forza utilizzare le sessioni. Così mantieni il dato su più pagine, cosa che non puoi invece fare con la query string.
In ogni pagina che ti serve, basta che fai:
string codice = (string)Session["CodCittadino"];
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
mar 21 ago 2007 - 14:48
>In ogni pagina che ti serve, basta che fai:
>string codice = (string)Session["CodCittadino"];
codcittadino proviene dalla pagina di origine, vero?
se non sbaglio con le sessioni, cliccando sui pulsante indietro-avanti del browser, dovrei vedere i dati conservati, giusto?
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
n3mesi
Profilo
| Newbie
38
messaggi | Data Invio:
mar 21 ago 2007 - 15:19
Se li ricarichi sulla pagina si...
Nel senso...se alla pageload le variabili di sessione sono diverse da null, allora le puoi utilizzare per riempire i tuoi controlli...
Esempio...sulla pagina di origine c'è una textbox dove inserisci il codice del cittadino...
Puoi fare in diversi modi...
Con le sessioni, puoi mettere un controllo sulla page load:
if (Session["CodCittadino"] != null)
tuaTextbox.text = (string)Session["CodCittadino"];
in modo che, la prima volta che carichi la pagina la text box è vuota...(poichè la variabile è di sessione è null).
Quando inserirai il codice e cliccherai sul pulsante, setterai la variabile di sessione:
protected pulsante_onClick(... ...)
{
Session["CodCittadino"] = tuaTextbox.Text;
...//più il codice che devi far eseguire
}
ora la variabile di sessione è settata...
ogni volta che dovrai ricaricare la pagina di origine da ora in avanti, sulla textbox apparirà anche il codicecittadino...(ramo dell'if nella pageload).
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
gio 23 ago 2007 - 08:04
se ad esempio compilo un form e confermo la compilazione, e x un qc motivo poi devo tornare indietro (pulsante 'indietro' del browser), con le sessioni è praticamente sicuro che il form me lo ritrovo compilato, vero?
correggimi se sbaglio...
te lo chiedo perchè con il server.transfer questo non succede.... porto un dato nella pagina successiva, ma quando vado indietro col browser mi dice che è impossibile visualizzare la pagina...
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
n3mesi
Profilo
| Newbie
38
messaggi | Data Invio:
gio 23 ago 2007 - 09:46
Si, se sulla page load della pagina di origine ti occupi di riprendere i valori dalle variabili di sessione e di caricarli nei tuoi controlli...
Ma attenzione, ogni volta che non ti servono più, ricordati di mettere a null tutte le variabili di sessione...
Per esempio, hai una pagina con 3 textbox, nome, cognome, alias e un bottone per inserire un utente nel database. La prima volta riempi tutti e 3 i campi e li inserisci nel database...se ora non metti a null tutte le variabili di sessione utilizzate, se vuoi fare un secondo inserimento, e inserisci solo cognome e alias, clicchi sul pulsante, poi per qualche motivo vuoi ritornare alla pagina di origine, le textbox saranno caricate con cognome e alias attuali, ma col nome del precedente, rischiando di compromettere l'integrità dei dati. Una sessione rimane valida (e quindi le variabili di sessione sono preservate) finchè non fai il logout o non chiudi il browser...
_J_
Profilo
| Senior Member
273
messaggi | Data Invio:
gio 23 ago 2007 - 10:03
era quello che sospettavo.. devo settare a null non appena finisco l'uso delle suddette variabili...
ora è tutto chiaro..
grazie per le delucidazioni!
_J_
"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."
"Conosco me stesso? No, non parlo con gli estranei..."
Torna su
Stanze Forum
Elenco Threads
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 !