web-dev-qa-db-ja.com

コードビハインドでLinkBut​​ton OnClickイベントをメソッドに設定

コードビハインドからLinkBut​​tonを構築しています。onclickをメソッドに割り当て、それとともにパラメーターも渡す必要があります。私はこれをこれまでに持っています:

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

渡したいメソッドは次のようになります。

 protected void delline(string id)
        {

        }
14
Chris

それをそのメソッドに渡すことはできません。クリックイベントデリゲートを、それを処理できるメソッドに割り当てる必要があります。

このような:

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

このイベントの関数プロトタイプは次のとおりです。

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);
1
Moo-Juice