40 messaggi dal 01 ottobre 2010
ciao a tutti,

Ho definito una classe PersonaTree come albero di persone. Ho inserito un oggetto personatree di tipo PersonaTree nella classe c# associata alla pagina asp.


public partial class _Default : System.Web.UI.Page
{
    PersonaTree m_personatree;
    .......
    .......
}

 
Creo l'istanza dell'oggetto e lo visualizzo in una griglia.

........................
........................
m_personatree = CreaPersonaTree();
VisualizzaPersona(GridPersona,m_personatree);
.......................
.......................


Al click di un pulsante voglio lavorare sull'istanza dell'oggetto, ma lo trovo vuoto ( null ).
Quando premo il pulsante, la pagina viene ricaricata e già nel Page_Load lo trovo null.


Come faccio a mantenere l'oggetto personatree vivo durante l'interazione della pagina?

c'entra qualcosa la persistenza dei dati e qual'è la tecnica più usata?
93 messaggi dal 25 maggio 2005
Ciao,
dal codice che hai scritto, non si capisce un gran che.....
Comunque, in generale, un'istanza di un oggetto creato al volo non puoi ritrovarla al postBack successivo, se non viene memorizzata da qualche parte. Ogni richeista web non può sapere nulla della richiesta web precedente, tranne tramite appositi meccanismi.
Uno di questi potrebbe essere il ViewState interno della griglia. Presumo che tu ad un certo punto faccia qualcosa del genere:
GridPersona.DataSource = m_personatree;

Potresti sfruttare questo dato nella richiesta successiva, una cosa di questo tipo:
if(Page.IsPostBack)
{
    //ricavo i dati dalla ViewState della griglia
    if (GridPersona.DataSource != null && GridPersona.DataSource is PersonaTree)
        m_personatree = GridPersona.DataSource as PersonaTree;
} else {
    m_personatree=CreaPersonaTree();
    VisualizzaPersona(GridPersona, m_personatree);
}


P.S.: scusami per eventuali errori poiché non ho la possibilità di testare.
Inviato dall'app per Windows 8

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.