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

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

最佳答案

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

关于c# - 动态创建的按钮单击事件在 asp.net c# 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29167332/

相关文章:

c# - HttpUtility.ParseQueryString 不解码特殊字符

asp.net-mvc - 在WebForm页面中使用MVC主页

c# - 如何从 C# 中的矩阵获取邻接矩阵

c# - 如何在 LINQ 中应用 if 条件?

c# - 未添加实体

c# - 为什么我不能将 (1<<31) 分配给 ulong 变量? (错误25常数值...无法转换...)

c# - 在 asp.net Web API 中映射数组

.net - 在 .NET 中调用 HttpHandler 文件的最简单方法是什么?

http - 我怎么知道一个表单被提交了两次?

javascript - jQuery onclick 在浏览器 Edge 中不起作用