none
Percorrer todos textbox RRS feed

  • Pergunta

  •  

    Galera, eu tinha 1 função em uma aplicação asp .net 1.1 que eram assim:

     

    //DESABILITA TEXTBOX´S

    public void DisableTextBox(Control pai, bool enabled)

    {

    foreach (Control ctl in pai.Controls)

    {

    if(ctl is TextBox && ((TextBox)ctl).Text != "")

    {

    ((TextBox)ctl).Enabled = enabled;

    }

    else if(ctl is eWorld.UI.MaskedTextBox && ((eWorld.UI.MaskedTextBox)ctl).Text != "")

    {

    ((eWorld.UI.MaskedTextBox)ctl).Enabled = enabled;

    }

    else if(ctl.Controls.Count > 0)

    {

    DisableTextBox(ctl,enabled);

    }

    }

    }

     

    Porem agora que estou começando com o 2.0 essa função não funciono e me apresentou um erro assim:

     

    Warning 1 Expressão especificada nunca é do tipo ('TextBox') fornecido 

    Error 2 Não é possível converter o tipo 'System.Web.UI.Control' em 'TextBox' 

     

    Alguem tem ideia do que seja?

    segunda-feira, 10 de dezembro de 2007 12:55

Respostas

  • Falha minha.. falta de atenção na verdade.

    O nome da classe era TextBox ai tava dando "conflito".

     

    Ou seja ta tudo certo!

    Desculpem-me!

    terça-feira, 11 de dezembro de 2007 18:15

Todas as Respostas

  • Dá uma olhada no debug e veja se ele esta lendo somente textbox, afinal vc força o tipo no if, pode ser que ele esteja tentando converter um cara que nao seja textbox.
    pode verificar ? caso seja apenas textbox me avise que pensamos em algo.

    Abraços
    terça-feira, 11 de dezembro de 2007 02:15
  • Na verdade não posso debugar porque fiz essa função em uma classe onde tenho varias funções para tratamentos e tal e a logica esta correta pq ele percorre todos os controles verificando cada tipo e comparando se for Textbox ai sim que faz alguma coisa, mesmo pq minha maior duvida é que eu sempre utilizei essa função no 1.1 e so agora q estou começando a mecher com o 2.0 e tentei usar que deu zica.. mas valeu ajuda, pq aqui ta tensu.. dificil sair uma resposta!

    terça-feira, 11 de dezembro de 2007 11:27
  • Faz assim...

    no seu Foreach (Control ctl in pai.Controls) muda para Foreach (Textbox ctl in pai.Controls) acho que é aqui que ele esta dando problema... se puder verificar.

    Valeu
    terça-feira, 11 de dezembro de 2007 13:12
  • Né isso não parceiro.. o erro não é em run time.. é na hora de compilare esta dando nessa linha:

     

    if (ctl is TextBox && ((TextBox)ctl).Text != "")

     

     

    ctl is TextBox  = Warning 1 Expressão especificada nunca é do tipo ('TextBox') fornecido 

     

    ((TextBox)ctl).Text = Error 2 Não é possível converter o tipo 'System.Web.UI.Control' em 'TextBox'

    terça-feira, 11 de dezembro de 2007 16:31
  • no seu control tenta dar um getType para testar se é TextBox ao invez de usar o is
    terça-feira, 11 de dezembro de 2007 17:02
  • Continua a mesma coisa.

    terça-feira, 11 de dezembro de 2007 17:43
  • Falha minha.. falta de atenção na verdade.

    O nome da classe era TextBox ai tava dando "conflito".

     

    Ou seja ta tudo certo!

    Desculpem-me!

    terça-feira, 11 de dezembro de 2007 18:15