0

私は2つのボタンを持っています。最初のボタンはコード ビハインドから描画されます。最初のボタンがクリックされると、2 番目のボタンが描画されます。これは完全に機能します。2 番目のボタンがクリックされたときにイベントを追加すると、このイベントはトリガーされません。以下のコードでわかるように、btnTwo_click 関数があります。この関数にブレークポイントを設定すると、プログラムは壊れません。コード ビハインドからこのイベントをトリガーする方法はありますか (Java スクリプトを使用しないでください)。

これがコードです。私は実際にこのシステムをテーブルで使用しています。しかし、この単純なコードには、最終的に同じ問題があります。

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ImageButton btn = new ImageButton();
        btn.Command += new CommandEventHandler(btnOne_Click);
        form1.Controls.Add(btn);
    }

    void btnOne_Click(object sender, EventArgs e)
    {
        ImageButton btn = new ImageButton();
        btn.Command += new CommandEventHandler(btnTwo_Click);
        form1.Controls.Add(btn);
    }

    void btnTwo_Click(object sender, EventArgs e)
    {
        Label lblTest = new Label(); //BREAKPOINT
        form1.Controls.Add(lblTest);
    }
}
4

2 に答える 2

1

Page ライフサイクルの Page_Load または Page_Init メソッドに 2 番目のボタンを追加する必要があります。

例えば

protected void Page_Load(object sender, EventArgs e)
{
    ImageButton btn = new ImageButton();
    btn.Command += btnOne_Click;
    form1.Controls.Add(btn);

    ImageButton btn2 = new ImageButton();
    btn2.Command += btnTwo_Click;
    btn2.Visible = false;
    form1.Controls.Add(btn2);
}

void btnOne_Click(object sender, EventArgs e)
{
    // Your second button 
    form1.Controls[2].Visible = true;
}

void btnTwo_Click(object sender, EventArgs e)
{
    ImageButton btn2 = (ImageButton)sender;
    // Do something
}
于 2013-05-03T11:55:25.763 に答える