Mantenimento del valore delle variabili di classe dopo 2 postback

martedì 09 agosto 2005 - 12.06

Alethesnake Profilo | Newbie

ciao, ho un problema banale e ma mi servirebbe un consiglio su come risolverlo.

vi posto uno stralcio del mio code-behind:

-----------
...
public class MiaClasse : Page
{
private AltraMiaClasse amc;

private void primoBottone_Click(object s, EventArgs e)
{
amc = new AltraMiaClasse(...);
}

private void secondoBottone_Click(object s, EventArgs e)
{
amc.metodoDellAltraMiaClasse();
}
}
-----------

in sintesi:
- carico la pagina e vedo il bottone primoBottone.
- sul suo click istanzio l'oggetto amc della classe AltraMiaClasse, nascondo primoBottone e mostro secondoBottone.
- sul click su secondoBottone ottengo una NullReferenceException dovuta, a quel che ho capito, al fatto che mi sono perso il viewstate. è così? se si, come posso fare per evitarlo?

grazie

LudovicoVan Profilo | Junior Member

>- carico la pagina e vedo il bottone primoBottone.
>- sul suo click istanzio l'oggetto amc della classe AltraMiaClasse,
>nascondo primoBottone e mostro secondoBottone.
>- sul click su secondoBottone ottengo una NullReferenceException
>dovuta, a quel che ho capito, al fatto che mi sono perso il
> viewstate. è così? se si, come posso fare per evitarlo?

Non è che ti sei perso il ViewState, ma nel ViewState vongono conservati in automatico solo i controlli della pagina, mentre altri valori devi essere tu a metterceli esplicitamente:

private void primoBottone_Click(object s, EventArgs e)
{
AltraMiaClasse amc = new AltraMiaClasse(...);
ViewState("AMC") = amc;

private void secondoBottone_Click(object s, EventArgs e)
{
AltraMiaClasse amc = (AltraMiaClasse)ViewState("AMC");
amc.metodoDellAltraMiaClasse();
}

(Controlla la sintassi perchè di solito scrivo in VB)

HTH. -LV

(Peace X Love] = [1)
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 !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5