Quand et comment initialiser le ViewState?
Question
J'essaie d'utiliser ViewState pour stocker une collection, mais cela me donne toujours l'erreur: La référence d'objet n'est pas définie à une instance d'un objet. Je ne sais pas quand l'initialiser et où? Parfois j'utilise:
if(ViewState["X"]==null) ViewState["X"] = new List<Checkitem>();
et je l'ai mis à l'événement Page_Init (), mais l'initialisation continue à chaque fois à une nouvelle instance !!
Quand j'essaie de l'écrire, par exemple:
if (!IsPostBack)
ViewState["keywords"] = new List<Checkitem>();
Il n'est pas initialisé plus tard et affiche l'erreur mentionnée ci-dessus !!
La solution
ViewState.Add("key", "value"); //adding value in viewstate
String abc = ViewState["key"].ToString(); //getting value from viewstate
Autres conseils
Voir ce message et ma réponse, je vous suggère de lire la rubrique Cycle de vie d'une page ASP.NET (l'image incluse dans le message référencé devrait fournir des indices sur l'emplacement de ViewState:
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow