[c#] Associare eventi a bottoni creati dinamicamente

sabato 26 maggio 2012 - 13.44

jeppe1000 Profilo | Newbie

CIao a tutti, ho un problema e spero mi aiutiate a risolverlo, sto creando una applicazione web, e vorrei creare n bottoni in modo dinamico (ad sempio prendendo i campi da un database), e vorrei associare ad ogni bottone un evento click cosicchè ad ogni click riesco a capire quale bottone è statro premuto. Questo è il codice che ho implementato (per prova per creare i bottoni dinamicamente ho utlizzato un ciclo for):

for (i=0;i<5 i++){
Panel p=new Panel;
Button b= new Button;
b.ID=i;
EventHandler eh=new EventHandler(B_Click);
b.Click += eh;
p.COntrols.Add(b);
this.Page.Form.Control.Add(p);
}

public void B_Click(Object sender , EventArgs e){
Label1.Text=" Bottone CLiccato: "+b.ID.toString():
}


Naturaleme in questo modo risulta sempre che ho cliccato l'ultimo pulsante, poichè l'evento click viene sovrascritto ad ogni ciclo e quindi alla fine associato solo al bottone ultimo.
COme Posso risolvere?
Grazie

andrestu Profilo | Expert

recupera l'id così:

string id = ((Button)sender).ID;

Andrea Restucci - Web Developer

jeppe1000 Profilo | Newbie

Ho risolto con il tuo consiglio, grazie mille

andrestu Profilo | Expert

di niente figurati, ricorda che il sender è sempre l'oggetto a cui appartiene l'evento quindi puoi utilizzare lo stesso meccanismo anche in altri tipi di controlli che espongo eventi come questo.

Andrea Restucci - Web Developer
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5