Voici ce qui est dans mon code-behind:Maintenir la liste générique entre postbacks
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);
}
Je veux ajouter un élément à la liste chaque fois que le bouton Ajouter est cliqué, mais la liste est remis à zéro après chaque postback . Comment puis-je conserver les données dans la liste entre les publications?
Vous n'avez pas besoin d'affecter la liste des événements à la propriété Events, vous travaillez avec des références. C'est la même liste. –
@Alex Reibort: En fait, dans le getter, vous désérialisez l'instance de la liste hors de l'état d'affichage, dans le setter, vous remettez l'instance en série dans l'état d'affichage. L'instance dans le code est la même, mais cela disparaît entre les post-retours, vous devez actualiser l'état d'affichage après qu'il a été modifié. – CodingGorilla
Non, vous ne le faites pas. ViewState maintient son contenu désérialisé avant que vous demandiez la liste, ainsi il maintient la référence à la liste quand vous y accédez, vous récupérez la référence, utilisez-la pour mettre à jour l'instance et elle sera automatiquement enregistrée dans viewstate. Juste le tester. –