动态创建的按钮单击事件在asp.net c#中不起作用

时间:2015-03-20 13:12:25

标签: c# asp.net webforms

我正在尝试调用动态创建的按钮单击事件。我这个事件我想在点击动态创建的按钮时显示一条消息。

我的代码

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnMain_Click(object sender, EventArgs e)
    {

        Button btnNew = new Button();
        btnNew.ID = "btnClick";
        btnNew.Text = "Click";

        btnNew.Click += new System.EventHandler(btnNew_Click);
        this.form1.Controls.Add(btnNew);

    }
    protected void btnNew_Click(object sender, EventArgs e)
    {
        Label lblMeaaseg = new Label();
        lblMeaaseg.ID = "txtMessage";
        lblMeaaseg.Text = "Hello Shree";
        this.form1.Controls.Add(lblMeaaseg);
    }

1 个答案:

答案 0 :(得分:1)

您在btnMain点击引起的回发期间,在btnMain的点击事件处理程序中创建动态按钮。之后,您会在浏览器页面中看到新按钮,单击它并期望触发其单击事件处理程序(btnNew_Click)。按下新的动态按钮会导致新的回发,该回发由ASP.NET在服务器上创建的新页面实例处理。这个新页面没有动态按钮 - 没有任何内容连接到btnNew_Click。您必须编写代码以保持动态按钮已创建的事实,并在每次实例化页面时重新创建此按钮。因此,此按钮有机会感受并响应其客户端点击。