2010-05-13 7 views
1

J'ai un contrôle utilisateur simple contenant deux zones de texte que j'ajoute à l'espace réservé sur l'événement Clic bouton. Je stocke le nombre (nombre) de clics dans l'état Affichage et exécute une boucle en utilisant le compte pour créer tous les contrôles utilisateur précédemment ajoutés. J'ajoute aussi des identifiants à chaque contrôle d'utilisateur (en ajoutant "UC" et compte). J'ai également vérifié dans la source de vue les ids sont mêmes chaque fois qu'ils sont créés. J'ai un autre bouton qui fait essentiellement un retour. J'ai EnableViewState enabled = "true" dans tous les contrôles jusqu'au niveau de la page. Mon problème est que l'entrée utilisateur ne persiste pas sur la publication. s'il vous plaît conseil. Cela ne devrait-il pas se produire automatiquement pour moi?Contrôles utilisateur chargés dynamiquement et persistants dans l'état d'affichage

+1

Veuillez reformuler ou clarifier votre question. Fournissez des exemples de code si possible. – kervin

Répondre

1

Jetez un oeil à ceci:

http://www.denisbauer.com/ASPNETControls/DynamicControlsPlaceholder.aspx

J'ai rencontré des problèmes mineurs avec elle dans une ferme Web, mais pour les déploiements simples son utilisation est assez simple. (Fourni avec le code source et le problème de la ferme Web est un correctif assez simple.)

+0

Pourriez-vous partager les problèmes mineurs que vous avez rencontrés, et peut-être même le correctif? ce serait bien de savoir à l'avance. Thx – Piddu

1

Vous devez créer vos contrôles dynamiques dans l'événement Page_PreInit plutôt que Page_Load ou dans un gestionnaire d'événements Click. De cette façon, ils seront là avant ViewState, puis vos valeurs affichées seront appliquées.

Je pense que ce qui se passe, c'est que vous créez vos contrôles pendant le gestionnaire d'événements click, ce qui se produit après que ViewState et PostBack aient été appliqués. Cela signifie que vos contrôles seront créés vides à chaque fois.

+0

C'est un très bon point. Même si le contrôle est recréé dans init lors de postbacks ultérieurs, s'il a été créé pour la première fois lors d'un gestionnaire d'événements click/change, il gâchera le suivi viewstate du contrôle. – CRice

Questions connexes