2009-06-30 7 views
0

J'ai un code qui implique la création dynamique de nouveaux boutons, lorsqu'un utilisateur clique sur un bouton particulier. Cependant, les EventHandlers définis pour ces boutons créés dynamiquement ne s'exécutent pas lorsque je clique sur l'un d'entre eux. Voici l'extrait de code errant:Comment puis-je créer un EventHandler dans un EventHandler?

protected void Page_Load(object sender, EventArgs e) 
{ 
    ....... 
    btn1.Click += new EventHandler(this.btn1_Click); 
    ....... 
} 

protected void btn1_Click(object sender, EventArgs e) 
{ 
    ....... 
    LinkButton btn2 = new LinkButton(); 
    btn2.Click += new EventHandler(this.btn2_Click); 
    ......... 
} 

protected void btn2_Click(object sender, EventArgs e) 
{ 
    ....... 
} 

L'exécution du code n'entraîne jamais btn2_Click(). Est-ce que je fais quelque chose de mal ici?

Répondre

1

Essayez de déclarer LinkButton btn2 comme variable globale et de câbler l'événement btn2.Cliquez sur + + new EventHandler (this.btn2_Click) lorsque les contrôles sont créés.

0

btn2 disparaît dès que vous quittez le gestionnaire d'événements btn1. C'est une variable locale, et disparaît dès que c'est hors de portée.

Avez-vous déjà vu le second bouton? Avez-vous cliqué dessus? Si oui, alors vous avez cliqué sur le mauvais bouton. Celui que vous avez ajouté n'est jamais apparu sur votre page. Pour qu'un contrôle devienne visible (et qu'il soit rendu en HTML), il doit être placé à l'intérieur de la collection Controls d'un contrôle visible. Tu ne fais rien avec ça.

Questions connexes