动态ImageButton单击事件未触发

时间:2015-12-15 09:38:17

标签: 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代码呢?

1 个答案:

答案 0 :(得分:4)

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