none
Recuperar controles de uma pagina RRS feed

  • Pergunta

  • Estou usando o codigo abaixo para recuperar controles de uma pagina

    foreach (Control ctl in Page.Controls)
    {
      if (ctl is TextBox)
      {
        ((TextBox)ctl).Text = string.Empty;
      }
    }

    Mas não esta dando certo, o que tenho que alterar para conseguir acessar as propriedades dos controles ?

     

    quarta-feira, 20 de dezembro de 2006 16:36

Respostas

  • Leando,

    vc tem q criar uma funcao recursiva para isso, algo parecido com isso:

      private void limparCampo(Control page)
      {
       if(page.Controls.Count > 0)
       {
        foreach(Control ctrl in page.Controls)
        {
         if(page.GetType() == typeof(System.Web.UI.WebControls.TextBox))
         {
          ((System.Web.UI.WebControls.TextBox)page).Text = string.Empty;
         }else
          limparCampo(ctrl);
        }
       }
       else
       {
        if(page.GetType() == typeof(System.Web.UI.WebControls.TextBox))
        {
         ((System.Web.UI.WebControls.TextBox)page).Text = string.Empty;
        }
       }   
      }

    Espero ter ajudado.
    Se o post foi útil qualifique como tal, obrigado,

    []'s

    sexta-feira, 22 de dezembro de 2006 19:22

Todas as Respostas

  • Amigo,

    A melhor forma de capturar os objetos vindos da PAGE é com o findcontrol.

    Por exemplo, imagine que você queira verificar se um TextBox existe na página. No click do botão você coloca o seguinte código:

    private void Button1_Click(object sender, System.EventArgs e)
    {
       TextBox b = Page.FindControl("TextBox1") as TextBox;
       if(b != null)
       {
          Response.Write("Encontrei o TextBox1 na página<br>");
       }        
    }

    []'s

    Raphael

    Se o Post foi útil não esqueça de clicar!!!

    quinta-feira, 21 de dezembro de 2006 16:33
  • Eu não tenho o Id dos campos que preciso localizar.

    Por exemplo, uma rotina para limpar todos os campos, terei que fazer um loop em todos os controles do tipo textbox e limpar o mesmo.

    Como deve ficar este codigo ?

     

     

    sexta-feira, 22 de dezembro de 2006 18:29
  • Leando,

    vc tem q criar uma funcao recursiva para isso, algo parecido com isso:

      private void limparCampo(Control page)
      {
       if(page.Controls.Count > 0)
       {
        foreach(Control ctrl in page.Controls)
        {
         if(page.GetType() == typeof(System.Web.UI.WebControls.TextBox))
         {
          ((System.Web.UI.WebControls.TextBox)page).Text = string.Empty;
         }else
          limparCampo(ctrl);
        }
       }
       else
       {
        if(page.GetType() == typeof(System.Web.UI.WebControls.TextBox))
        {
         ((System.Web.UI.WebControls.TextBox)page).Text = string.Empty;
        }
       }   
      }

    Espero ter ajudado.
    Se o post foi útil qualifique como tal, obrigado,

    []'s

    sexta-feira, 22 de dezembro de 2006 19:22
  • Deu certo, obrigado...

    sexta-feira, 22 de dezembro de 2006 22:19