我从代码后台构建了一个LinkButton,我需要将onclick分配给一个方法,并将一个参数传递给它。到目前为止,我有:
LinkButton lnkdel = new LinkButton();
lnkdel.Text = "Delete";
我想要传递的方法看起来像这样:
protected void delline(string id)
{
}
我从代码后台构建了一个LinkButton,我需要将onclick分配给一个方法,并将一个参数传递给它。到目前为止,我有:
LinkButton lnkdel = new LinkButton();
lnkdel.Text = "Delete";
我想要传递的方法看起来像这样:
protected void delline(string id)
{
}
你不能直接将它传递给那个方法,你需要将点击事件委托分配给一个能够处理它的方法。
就像这样:
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;
};
此事件的函数原型为:
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);
lnkDel.Command += new CommandEventHandler(DynamicCommand)
或者只是lnkDel.Command += DynamicCommand
。 - RPM1984