【问题标题】:dynamically created button click event is not working in asp.net c#动态创建的按钮单击事件在asp.net c#中不起作用
【发布时间】:2015-03-20 13:12:24
【问题描述】:

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

我的代码

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

【问题讨论】:

  • 欢迎来到 StackOverflow!正如您将很快了解到的那样,“不起作用”并不是对您的代码有什么问题的有效描述。请提供您收到的错误的确切文本以及发生错误的行(如果适用)
  • 我想在 btnNew_Click(object sender, EventArgs e) 事件上显示这个 lblMessage,但它不起作用
  • 您可能需要添加标签的位置。
  • this.form1.Controls.Add(lblMeaaseg);这是我要显示标签的位置
  • @RyanDansie - 它与 ViewState 有什么关系?

标签: c# asp.net webforms


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 2011-09-05
    • 1970-01-01
    相关资源
    最近更新 更多