web-dev-qa-db-fra.com

Définition de LinkButton ONClick Event sur la méthode du code derrière

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)
        {

        }
14
Chris

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;
};
31
RPM1984

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);
1
Moo-Juice