2011-02-14 3 views
0

Mon code fonctionne parfaitement avec les boutons normaux. Mais j'ai besoin d'ajouter du code derrière ces boutons ajoutés dynamiquement. Ainsi, j'ai besoin de ASP: Buttons au lieu de Standard-Buttons. Comment est-ce que je fais ceci?Comment créer ASP: Boutons dans Code-Behind? (ou juste ajouter un Eventhandler fonctionnant aux boutons standard?)

Au moment de mon code de travail ressemble à ceci (seulement les parties importantes):

AjaxControlToolkit.AccordionPane nrX = new AjaxControlToolkit.AccordionPane(); 

Button b = new Button(); 
b.OnClick += Eventhandler(my_function); 

nrX.ContentContainer.Controls.Add(b); 

Actuellement, le eventHandler n'est pas appelé. Quand je regarde la source produite dans le Browser, il ya Noch onclick Event ou quelque chose comme ça qui est (je pense) le problème. Alors, comment puis-je changer mon "Bouton b" à un "ASPButton" b? Ajouter un attribut "runat =" server "" ne fait pas l'affaire, car ce code est (bien sûr) exécuté après le chargement de la page ... Ou est-ce que je me trompe?

Répondre

1

Il vous manque QUAND le bouton est créé. Si vous créez le bouton juste avant le rendu de la page, il n'aura aucune correspondance lorsque le ASP.NET essaie de trouver le gestionnaire d'événements associé.

Si vous devez créer des boutons dynamiquement, assurez-vous de les recréer lors de l'événement de chargement de la page, afin qu'ASP.NET dispose d'une référence pour attacher les gestionnaires d'événements.

+0

J'appelle une méthode qui crée ces boutons dans l'événement page_load. Ajouter un b.RedirectUrl fonctionne, mais j'en ai besoin de plus. Alors est-ce vraiment le problème? – fbtb

+0

lorsque j'essaie b.RedirectURL Asp.net ajoute le code sans problème et crée un événement onclick. Alors est-ce vraiment le problème? – fbtb

Questions connexes