Stockage d'une List<int> dans l'état d'affichage

J'ai une page aspx qui est la suivante:

  • Un répéteur avec un linkbutton dans chaque
  • Le bouton de lien a un commandargument d'une valeur entière
  • Un contrôle utilisateur

L'idée est que lorsque l'utilisateur clique sur le linkbutton la valeur de la commandarguement est stocké dans une Liste. Pas de problème, vous pensez peut-être, cependant j'ai besoin de la valeur à stocker dans une Liste dans le contrôle usercontrol, pas dans la page ASPX. La Liste doit être conservé à travers les publications, il doit également être stockés dans le viewstate.

J'ai donc créé une propriété publique dans le contrôle de l'utilisateur comme suit:

public List<int> ImageString {
    get {
        if (this.ViewState["ImageString"] != null) {
            return (List<int>)(this.ViewState["ImageString"]);
        }
        return new List<int>();
    }
    set { this.ViewState["ImageString"] = value; }
}

Et puis j'espérais qu'à partir de ma page aspx, je pourrais ajouter une ligne de code à ajouter une valeur à la liste comme suit:

this.LightBoxControl.ImageString.Add(value);

Le problème, je vais arriver, c'est que la valeur est en fait jamais ajouté à la liste. Le compteur est toujours à zéro.

Je suis sûr que c'est juste que j'ai défini la propriété de mal, mais je ne suis pas sûr de savoir comment le droit..

Toute aide serait grandement appréciée.

Merci
Al

OriginalL'auteur higgsy | 2011-09-08