18 messaggi dal 09 febbraio 2007
Ho una pagina in cui ho dichiarato un'ArrayList come variabile globale (visibile in tutta la classe) e vorrei che, anche dopo aver effettuato un postback, l'arraylist rimanesse istanziato con i dati precedentemente inseriti.

Cerco di spiegarmi meglio: nella pagina c'è una textbox e un bottone. Quando faccio clic sul bottone l'ascoltatore dell'evento mi inserisce nell'arraylist il contenuto della textbox e quindi la pagina viene ricaricata (in postback). A questo punto però il contenuto dell'arraylist è perso! ;(

Soluzioni?
58 messaggi dal 27 ottobre 2006
3 soluzioni a seconda di quello che ti serve.
Cache
Session
Application

googla un pò...

THUG-LIFE
18 messaggi dal 09 febbraio 2007
Sono parzialmente riuscito usando Session però adesso ho questo problema: una volta che la pagina si è ricaricata non viene visualizzato subito il contenuto inserito che ho inserito nella textbox, ma è necessario un successivo postback.

Non so se sono riuscito a spiegarmi.

Per favore Eve aiutami te!
58 messaggi dal 27 ottobre 2006
da quello che scrivi sembra un problema di programmazione.
io non so com'è il tuo codice quindi non saprei aiutarti...

THUG-LIFE
18 messaggi dal 09 febbraio 2007
Il codice della pagina è:

ArrayList Risposte;

prot... Page_Load(...)
{
   if (Session["XYZ"] == null)
      Risposte = new ArrayList();
   else 
      Risposte = (ArrayList) Session["XYZ"];

   Label1.Text = Risposte.Count.ToString();
      
}

prot... BtnAggiungi_Click(...)
{
   Risposte.Add(TxtRisposta.Text);
   Session["XYZ"] = Risposte;
   
}


Teoricamente la label dovrebbe mostrarmi il numero di elementi ad ogni postback, invece ne sono necessari due.

P.S.: Scusa per il codice non indentato ma sebbene lo scriva indentato poi sul forum si legge così. Hai una soluzione anche per questo?!?
Modificato da dariotognacci il 02 giugno 2007 19.02 -
58 messaggi dal 27 ottobre 2006
quel codice non funziona per niente in quanto manca Session["XYZ"] = Risposte;.
questo dovrebbe funzionare...

if (Session["XYZ"] == null)
{
Risposte = new ArrayList();
Session["XYZ"] = Risposte;
}
else
Risposte = (ArrayList)Session["XYZ"];

Label1.Text = Risposte.Count.ToString();

THUG-LIFE
18 messaggi dal 09 febbraio 2007
Ecco un altro esempio che ha lo stesso problema. Faccio clic sul pulsante una volta e la label mi dice che ci sono 0 elementi anche se il clic del bottone dovrebbe aggiungerlo. Perchè? Dal secondo clic in poi inizia a contare in maniera corretta.

ArrayList list;

prot... Page_Load( ... )
{
   if (ViewState["dati"] == null)
      list = new ArrayList();
   else
      list = (ArrayList) ViewState["dati"];

   Label1.Text = list.Count.ToString();
}

prot... Button1_Click( ... )
{
   list.Add("Ciao");
   ViewState["dati"] = list;
}


A me sembra concettualmente giusto, però... Per favore aiutatemi perchè mi serve per la tesina della maturità che devo consegnare giovedì prossimo.

Un grazie enorme a chi mi aiuterà!
58 messaggi dal 27 ottobre 2006
non ti funziona per lo stesso motivo che non ti funzionava l'esempio con le sessioni...
ps:ho visto che hai postato anche su html.it

THUG-LIFE

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.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC