How to call the 'OnClick' event in the code behind?

-1

How can I call the OnClick event in code behind of a dynamically created button?

I'm trying the following way, but I'm not getting it.

      void MontarHtml(List<DocumentoImagens> DocImagens)
            {
                foreach (DocumentoImagens DocImg in DocImagens)
                {
                    TableRow trTesto = new TableRow();
                    trTesto.Cells.Add(MontarTextBox(DocImg));
                    trTesto.CssClass = "textarea";
                    Table1.Rows.Add(trTesto);

                    TableRow trimagem = new TableRow();

                    TableCell tdckb = new TableCell();

                    ImageButton btn = new ImageButton { ID = DocImg.IdDocImagem.ToString() };
                    btn.ImageUrl = "~/Imagens/Icons/delete.gif";
                    btn.Click += new ImageClickEventHandler(butDeleteImagem_Click);
                    tdckb.Controls.Add(btn);
                    trimagem.Cells.Add(tdckb);
                    Table1.Rows.Add(trimagem);

                    TableCell tdig = new TableCell();
                    Image ig = new Image();
                    ig.ImageUrl = DocImg.Url;
                    ig.ID = "idimg" + DocImg.IdDocImagem.ToString();
                    ig.CssClass = "image";
                    tdig.Controls.Add(ig);
                    trimagem.Cells.Add(tdig);
                    Table1.Rows.Add(trimagem);
                }
            }

            protected void butDeleteImagem_Click(object sender, ImageClickEventArgs e)
            {
                try
                {
                    ImageButton Btn = sender as ImageButton;
                    if (Btn != null)
                    {
                        Int32 IdDocImagem = Convert.ToInt32(Btn.ID);

                        new DocumentoImagensBusiness().DeleteDocumentoImagens(IdDocImagem);
                    }

                    var DocuImagens = new DocumentoImagensBusiness().GetDocumentoImagens(_documento.IdDocumento);
                    Table1.Controls.Clear();
                    LoadImagens(DocuImagens);
                }
                catch (Exception ex)
                {
                    Util.ExibirMensagem(lblMensagemErro, ex.Message, Util.TipoMensagem.Erro);
                    NLog.Log().Error(ex);
                    ExcecaoBusiness.Adicionar(ex, HttpContext.Current.Request.Url.AbsolutePath);
                }
            }

  protected void Page_Load(object sender, EventArgs e)
        {
            try
            {

                var DocuImagens = new DocumentoImagensBusiness().GetDocumentoImagens(_documento.IdDocumento);
                LoadImagens(DocuImagens);


                //..............

       private void LoadImagens(List<DocumentoImagens> DocuImagens)
        {
            if (DocuImagens != null)
                MontarHtml(DocuImagens);

           //.....................
    
asked by anonymous 17.11.2015 / 14:52

1 answer

3

Try this way

btn.Click += new ImageClickEventHandler(butDeleteImagem_Click);

Put this code in PageLoad() of your page.

    
17.11.2015 / 15:06