【问题标题】:How to create an asp:button programmatically in c# behind with click handling如何在 C# 后面通过点击处理以编程方式创建一个 asp:button
【发布时间】:2017-06-14 17:56:04
【问题描述】:

我在多次搜索后编写了此代码,但无法正常工作
我需要以编程方式创建 asp:button 并处理它

for(int i=0;i<DtShow.Rows.Count;i++)
        {
            Button btn = new Button
            {
                Text = "حذف",
                ID = i.ToString(),
                UseSubmitBehavior = false,
                CommandArgument =i.ToString(),
                CssClass = "btn btn-danger"
            };
            btn.Click +=new EventHandler(this.btn_Click);
            lstAccessDgv.Rows[i].Cells[2].Controls.Add(btn);
        }
 protected void btn_Click(object sender, EventArgs e)
    {
        Button b = (Button)sender;
        int id = Convert.ToInt32(b.ID);
        DtCode.Rows.RemoveAt(id);
        DtShow.Rows.RemoveAt(id);
        lstAccessDgv.Rows[id].Visible = false;
    }

为什么不调用 btn_Click?

【问题讨论】:

  • 您可能不会在每次页面加载时重新创建控件(包括回发)。

标签: c# asp.net


【解决方案1】:

很遗憾,您的问题并没有说明您要查找的信息是什么,但是,由于您确实提出了特定的查询,我会解决这个问题。

为什么不调用 btn_Click?

因为btn_Click 事件处理程序尚未绑定到按钮的单击事件。

这就是为什么在创建按钮时需要这样做:

btn.Click +=new EventHandler(this.btn_Click);

点击按钮时执行btn_Click

但要记住的是,此函数将为列表中的每个按钮执行,因此您需要确保它确实与按钮所属的列表项特别相关。

【讨论】:

    猜你喜欢
    • 2013-07-27
    • 2010-09-16
    • 1970-01-01
    • 2010-12-18
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 2012-08-07
    相关资源
    最近更新 更多