LinkButton的的OnClick事件设置为方法,codebehind [英] Setting LinkButton's OnClick event to method in codebehind
问题描述
我是从我的codebehind构建一个LinkButton,我需要的onclick分配到的方法,太传递参数吧。我有这个至今:
的LinkButton lnkdel =新的LinkButton();
lnkdel.Text =删除;
我想将它传递给看起来像这样的方法:
保护无效delline(字符串ID)
{ }
那么你无法将其传递给方法,你需要点击事件委托分配给有能力处理它的方法。
这样的:
公共无效DynamicClick(对象发件人,EventArgs的发送){
// 做一点事
}
分配click事件就像任何事件:
lnkdel.Click + =新的EventHandler(DynamicClick);
如果你想传递一个参数,使用 CommandArgument ,然后你需要一个不同的委托:
无效DynamicCommand(对象发件人,CommandEventArgs E)
{
Label1.Text =您选择:+ e.CommandName +项+ e.CommandArgument;
}
和则:
lnkDel.Command + =新CommandEventHandler(DynamicCommand)
lnkDel.CommandArgument = 1234;
顺便说一句,如果你在> = C#3,您还可以使用匿名方法的凉意:
lnkDel.Command + =(S,E)=> {
Label1.Text =您选择:+ e.CommandName +项+ e.CommandArgument;
};
I'm constructing a LinkButton from my codebehind, and I need to assign the onclick to a method, and pass a parameter with it too. I have this so far:
LinkButton lnkdel = new LinkButton();
lnkdel.Text = "Delete";
The method I want to pass it to looks like this:
protected void delline(string id)
{
}
Well you can't pass it to that method, you need to assign the click event delegate to a method capable of handling it.
Like this:
public void DynamicClick(object sender, EventArgs e) {
// do something
}
Assign the click event like any event:
lnkdel.Click += new EventHandler(DynamicClick);
If you want to pass an argument, use CommandArgument, and you'll need a different delegate:
void DynamicCommand(Object sender, CommandEventArgs e)
{
Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
}
And then:
lnkDel.Command += new CommandEventHandler(DynamicCommand)
lnkDel.CommandArgument = 1234;
BTW if you're on >= C#3, you can also use the coolness of anonymous methods:
lnkDel.Command += (s, e) => {
Label1.Text = "You chose: " + e.CommandName + " Item " + e.CommandArgument;
};
这篇关于LinkButton的的OnClick事件设置为方法,codebehind的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!