Setting LinkButton's OnClick event to method in codebehind

馋奶兔 提交于 2019-12-03 17:13:48

问题


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

        }

回答1:


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



回答2:


The function prototype for this event is:

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

Assign it with:

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


来源:https://stackoverflow.com/questions/4041137/setting-linkbuttons-onclick-event-to-method-in-codebehind

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!