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

    ASP.NET 2.0 - Recuperare variabili tra le sub

    Io mi sto perdendo in un bicchier dacqua credo... vado dritto al sodo con il codice cosi' ci capiamo subito:

    Ho inserito l'oggetto TREEVIEE nella mia pagina (Treeview1), quando clicco su un nodo di questo e scateno l'evento "SelectedNodeChanged" assegno ad una variabile Public il valore associato al nodo stesso. Premendo quindi un pulsante "Mostra" (tra le altre cose) voglio stampare il valore di questa variabile:

    codice:
    Public GruppoSelezionato As String
    
    Protected Sub TreeView1_SelectedNodeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    
           ...
           ...
     
            ' Memorizza il Gruppo Selezionato
            GruppoSelezionato = TreeView1.SelectedNode.Text
                   
    End Sub
    
    Protected Sub btnMostra_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    
            ' Recupera il Gruppo e lo mostra
            Response.Write("Gruppo = " & GruppoSelezionato)
           
            ...
            ...
    
    End Sub
    Ecco premendo il tasto "Mostra" non mi viene mostrato il valore del nodo! Il problema e' che la variabile la rileva ma non mostra il suocontenuto aggiornato....
    Dove sbaglio??

    Il mio ultimo libro:
    Giorni di Follia. Presenze inquietanti a Pescara.
    www.giornidifollia.it

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Ogni volta che invochi una pagina ASP.NET, entrando nella pagina stessa o eseguendo un PostBack, l'istanza della classe che determina il comportamento della pagina viene creata ogni volta e, una volta eseguito il codice di inizializzazione, gestito l'evento se c'è e restituito il contenuto relativo, l'istanza viene distrutta.

    Nel caso in esame, quindi, quando effettui una selezione sul TreeView, viene memorizzato nella variabile GruppoSelezionato il valore della selezione, ma quando la pagina torna al browser l'oggetto corrispondente viene distrutto e, quindi, si perde il valore della variabile; al "postback" successivo, che viene generato dal clic sul pulsante cui fa seguito l'evento relativo, la variabile conterrà il valore di default, quindi null, e non quello che hai memorizzato precedentemente, andato perduto poiché l'oggetto appartenente alla classe della pagina, creato per gestire la richiesta iniziale, è stato distrutto, così come verrà distrutto l'oggetto che ha risposto al "postback" per il clic sul pulsante.

    Per far sì che un valore venga mantenuto tra una transazione e l'altra della pagina, è necessario memorizzarlo in una locazione di "storage" persistente e indipendente dalla dinamica di creazione/distruzione dell'oggetto della pagina.

    Ad esempio, puoi immagazzinare il valore all'interno del ViewState: in questo modo, lo stato viene restituito assieme alla pagina e, al PostBack, ricaricato e nuovamente disponibile poiché inviato dal client che contiene quell'informazione.

    Prova a documentarti a riguardo. Se hai ulteriori difficoltà, riscrivi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.