c# - 未触发动态 ImageButton 单击事件

标签 c# asp.net

我有以下代码:

protected void Page_Load(object sender, EventArgs e)
{
    using (ImageButton _btnRemoveEmpleado = new ImageButton())
    {
        _btnRemoveEmpleado.ID = "btnOffice_1";
        _btnRemoveEmpleado.CommandArgument = Guid.NewGuid().ToString();
        _btnRemoveEmpleado.Height = 15;
        _btnRemoveEmpleado.Width = 15;
        _btnRemoveEmpleado.ImageUrl = "cross-icon.png";
        _btnRemoveEmpleado.Click += new ImageClickEventHandler(_btnRemoveEmpleado_Click);

        this.phPartesPersonal.Controls.Add(_btnRemoveEmpleado);
    }
}

void _btnRemoveEmpleado_Click(object sender, ImageClickEventArgs e)
{
    try
    {
        string s = "";
    }
    catch (Exception ex)
    {
    }
    finally { }
}

当我点击 _btnRemoveEmpleado 时,执行了回发,但我从未到达 string s = ""; 行。请问如何执行 _btnRemoveEmpleado_Click 代码?

最佳答案

删除 using,控件由 ASP.NET 自动处理,它们必须一直存在到页面生命周期结束。除了在 Page_Init 中创建您的动态控件之外,它应该可以工作。

protected void Page_Init(object sender, EventArgs e)
{
     ImageButton _btnRemoveEmpleado = new ImageButton();
    _btnRemoveEmpleado.ID = "btnOffice_1";
    _btnRemoveEmpleado.CommandArgument = Guid.NewGuid().ToString();
    _btnRemoveEmpleado.Height = 15;
    _btnRemoveEmpleado.Width = 15;
    _btnRemoveEmpleado.ImageUrl = "cross-icon.png";
    _btnRemoveEmpleado.Click += new ImageClickEventHandler(_btnRemoveEmpleado_Click);

    this.phPartesPersonal.Controls.Add(_btnRemoveEmpleado);
}

关于c# - 未触发动态 ImageButton 单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34285633/

相关文章:

c# - 为什么 Regex CompileToAssembly 的性能比编译的 regex 和 Interpreted Regex 慢?

c# - 获取所有业务部门

asp.net - ASMX Web 服务 - 返回具有属性的用户定义的类

c# - 数据访问模式类似于存储库但不完全

c# - 所有 Blazor 页面的公共(public)属性?

c# - 与 .NET 正则表达式的乘法

C# SqlDataReader 仅返回值 > 0

c# - List<T>.RemoveAll() 效率/编译器优化

c# - 将整个模型类成员存储在 session 中

ASP.NET - 消失的 session 变量