2009-01-14 8 views
1

Est-il possible d'ajouter des instances du même contrôle utilisateur lorsqu'un bouton "Ajouter" est cliqué et de maintenir ViewState?Ajouter dynamiquement plusieurs instances du même type de contrôle utilisateur lorsque vous cliquez sur le bouton

L'interface utilisateur est similaire au processus de connexion de fichiers Gmail, où l'utilisateur peut cliquer sur "attacher un autre fichier" et une autre zone de téléchargement de fichier apparaît.

Ma page est entourée d'un UpdatePanel. Je suis en mesure de charger 1 contrôle, mais l'événement click du bouton se déclenche après la méthode Placeholder_Init. J'ai essayé de stocker un nombre entier dans ViewState qui gardait trace du nombre de contrôles utilisateur qui devraient être rendus, mais la méthode Init est également déclenchée avant que ViewState soit restauré.

Merci!

Répondre

3

L'ajout dynamique de plusieurs contrôles est facile dans ASP.NET. Disons que vous avez un panneau nommé Panel déclaré dans votre fichier ASPX et que vous avez un contrôle personnalisé appelé MyControl.

Dans votre fonction Page_Load (ou bien à peu près partout), ajouter quelque chose comme ce qui suit:

for (int i = 0; i < NumberOfAttachments; i++) { 
    Panel.Controls.Add(new MyControl()); 
} 

Cela fonctionne pour UpdatePanels aussi, mais vous aurez besoin d'appeler la fonction .Update() à l'obtenir pour mettre à jour du côté du client si vous ne l'avez pas à mettre à jour sur la publication d'enfant.

Questions connexes