Je construisons un linkbutton à partir de My CodeBeHind et je dois attribuer l'Onclick à une méthode et transmettre un paramètre avec lui aussi. Je l'ai jusqu'à présent:
LinkButton lnkdel = new LinkButton();
lnkdel.Text = "Delete";
La méthode que je veux passer pour ressembler à ceci:
protected void delline(string id)
{
}
Eh bien, vous ne pouvez pas le transmettre à cette méthode, vous devez attribuer le délégué de l'événement clic à une méthode capable de la manipuler.
Comme ça:
public void DynamicClick(object sender, EventArgs e) {
// do something
}
Attribuez l'événement de clic comme n'importe quel événement:
lnkdel.Click += new EventHandler(DynamicClick);
Si vous souhaitez transmettre un argument, utilisez-le CommandAgument et vous aurez besoin d'un délégué différent:
void DynamicCommand(Object sender, CommandEventArgs e)
{
Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
}
Puis:
lnkDel.Command += new CommandEventHandler(DynamicCommand)
lnkDel.CommandArgument = 1234;
BTW Si vous êtes sur> = C # 3, vous pouvez également utiliser la fraîcheur des méthodes anonymes :
lnkDel.Command += (s, e) => {
Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
};
Le prototype de fonction pour cet événement est:
protected void lnkdel_OnClick(object _sender, EventArgs _args)
{
LinkButton src = (LinkButton)_sender;
// do something here...
}
Attribuez-le avec:
LinkButton lnkdel = new LinkButton();
lnkdel.Text = "Delete";
lnkdel.OnClick += new EventHandler(lnkdel_OnClick);