2009-12-14 2 views
0

Je crée une étiquette dynamique et une zone de texte en fonction du nombre de valeurs de la base de données pour l'élément sélectionné de la liste déroulante. Ensuite, les étiquettes dynamiques auront les noms et la zone de texte avec les valeurs. Pour conserver les valeurs de ces contrôles, utilisez l'événement Page_init. Donc im en utilisant le cache pour contenir le selectteditem de la liste déroulante.L'ajout dynamique de contrôles Web Forms ASP.NET perd l'état lors de l'actualisation de page

Problème: Le processus se passe bien. Mais si j'essaie d'actualiser la page, aucun élément n'est sélectionné dans la liste déroulante mais le cache ne devient pas clair, ce qui crée un contrôle dynamique de la valeur du cache.

+0

Peut être prob avec votre état d'affichage ... –

+0

Essayez enableViewState = "false" –

Répondre

1

Malheureusement, les contrôles ajoutés dynamiquement ne sont pas conservés, vous devez donc les ajouter à chaque chargement de page. Vous devrez donc recharger à partir de la base de données, ou stocker le nombre total de contrôles et recréer en utilisant l'index sur la page init. ViewState sera rechargé dans ces contrôles pour conserver la valeur précédente.

C'est juste que c'est dommage que vous ayez à faire le travail, mais c'est le cas pour les contrôles dynamiques. Comme alternative, vous pouvez utiliser un répéteur qui conserverait la liste des éléments qui lui sont liés.

HTH.

Questions connexes