Ecco ciò che è nel mio code-behind:Mantenere elenco generico tra i postback
List<Event> events = new List<Event>();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void AddEvent_Click(object sender, EventArgs e)
{
Event ev = new Event();
ev.Name = txtName.Text;
events.Add(ev);
}
Voglio aggiungere un elemento alla lista ogni volta che il pulsante Aggiungi viene cliccato, ma l'elenco viene resettato dopo ogni postback . Come posso mantenere i dati nella lista tra i postback?
Non è necessario assegnare l'elenco degli eventi alla proprietà Events, si lavora con i riferimenti. È la stessa lista. –
@Alex Reibort: Effettivamente, nel getter stai de-serializzando l'istanza della lista fuori dallo stato di visualizzazione, nel setter stai serializzando nuovamente l'istanza nello stato di visualizzazione. L'istanza nel codice è la stessa, ma quella scompare tra i postback, è necessario aggiornare lo stato della vista dopo che è stata modificata. – CodingGorilla
No, non lo fai. ViewState detiene deserializza il suo modo di contenuti prima di chiedere l'elenco, quindi mantiene il riferimento alla lista quando ci si accede, si ottiene il riferimento, lo si usa per aggiornare l'istanza e verrà automaticamente salvato in viewstate. Provalo e basta –