Setting LinkButton's OnClick event to method in codebehind

前端 未结 2 1267
夕颜
夕颜 2021-02-07 12:56

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         


        
相关标签:
2条回答
  • 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;
    };
    
    0 讨论(0)
  • 2021-02-07 13:22

    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);
    
    0 讨论(0)
提交回复
热议问题