将LinkBut​​ton OnClick事件设置为后面的代码中的方法

时间:2010-10-28 08:40:19

标签: c# asp.net events linkbutton

我正在从我的代码隐藏中构建一个LinkBut​​ton,我需要将onclick分配给一个方法,并传递一个参数。到目前为止我有这个:

LinkButton lnkdel = new LinkButton();
lnkdel.Text = "Delete";

我希望将它传递给它的方法如下:

 protected void delline(string id)
        {

        }

2 个答案:

答案 0 :(得分:31)

您无法将其传递给该方法,您需要将click事件委托分配给能够处理它的方法。

像这样:

public void DynamicClick(object sender, EventArgs e) {
    // do something
}

像任何事件一样分配点击事件:

lnkdel.Click += new EventHandler(DynamicClick);

如果您想传递参数,请使用 CommandArgument ,您需要一个不同的委托:

void DynamicCommand(Object sender, CommandEventArgs e) 
      {
         Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
      }

然后:

lnkDel.Command += new CommandEventHandler(DynamicCommand)
lnkDel.CommandArgument = 1234;

顺便说一句,如果您使用> = C#3,您还可以使用匿名方法的酷炫:

lnkDel.Command += (s, e) => { 
   Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
};

答案 1 :(得分:1)

此活动的功能原型是:

protected void lnkdel_OnClick(object _sender, EventArgs _args)
{
    LinkButton src = (LinkButton)_sender;
    // do something here...
}

将其指定为:

LinkButton lnkdel = new LinkButton();
lnkdel.Text = "Delete";
lnkdel.OnClick += new EventHandler(lnkdel_OnClick);