Ir para conteúdo
Fórum Script Brasil
  • 0

Botao limpar - for each


jorgedias78

Pergunta

Viva ppl da lista!

Espero que alguém da lista me consiga ajudar a resolver este pequeno problema.

Estou a trabalhar em paginas aspx e no final de um formulario tenho um botao limpar.

Esse botao funciona, naturalmente, para limpar todas as caixas de texto, dropdownlist, etc desse formulario. Esse botao possui um evento que vai disparar uma mensagem antes de apagar os dados:

onclientclick = if (!confirm('Confirma limpeza de dados?')) return false;
Ele dispara e funciona muito bem, mas ele faz isso caso os campos estejam vazios tambem. Como poderei fazer para ele disparar uma mensagem diferente para quando todos os campos estejam vazios? Tipo "não existem campos para limpar!" Eu já uso for each:
For Each c As Control In Me.Controls
           If TypeOf c Is TextBox Then
               c.Text = ""
           End If
Next

como esta postado em:

http://scriptbrasil.com.br/forum/index.php?showtopic=73733

Queria era saber como usar isto para ver se os campos estao limpos ou não. Se estiverem, disparam a menssagem para limpar e limpam os campos. Se não estiverem, dispara a mensagem a dizer que os campos estao limpos.

Como fazer isto no codigo em cima?

Obrigado pela vossa atencao e se possivel resposta!

Cumps,

JD

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Meu caro, que tal você acrescentar somente um "And" nesse IF?

Assim:

If (TypeOf c Is TextBox) and (c.text <> null) Then
     c.Text = ""
End If

Talvez a sintaxe não esteja correta para o ASPX, pois nunca programei nessa linguagem, mas a lógica seria esta.

Abraço.

Editado por ƒ Edu ƒ
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pela resposta, mas isso não funciona pois não existem propriedades suficientes para o control ctl.

Eu já uso o for each:

dim ctl as control
For Each ctl In controlP.Controls

If (TypeOf ctl Is TextBox) Then
DirectCast(ctl, TextBox).Text = String.Empty
End If
Next
Como já referi a minha duvida e como usar isto para disparar mensagens como o javascript faz, para o caso dos campos estarem já limpos ou não. não faz sentido limpar campos que estao vazios. Tenho este codigo que se abaixo que poderia ser chamado, mas o problema e como usa-lo em cima. Como poderei utilizar o ctl do tipo control para saber se o conteudo esta vazio ou não, já que o intellisense não tem uma propriedade .value ou . text?
Dim strMessage As String
strMessage = "Os campos estao vazios!"
Dim strScript As String = "<script language=JavaScript>"
strScript += "alert(""" & strMessage & """);"
strScript += "</script>"

Como fazer isso no codigo em cima?

Obrigado uma vez mais pela possivel ajuda!

Link para o comentário
Compartilhar em outros sites

  • 0
Obrigado pela resposta, mas isso não funciona pois não existem propriedades suficientes para o control ctl.

Eu já uso o for each:

dim ctl as control

For Each ctl In controlP.Controls

If (TypeOf ctl Is TextBox) Then

DirectCast(ctl, TextBox).Text = String.Empty

End If

Next

Como já referi a minha duvida e como usar isto para disparar mensagens como o javascript faz, para o caso dos campos estarem já limpos ou não. não faz sentido limpar campos que estao vazios.

Tenho este codigo que se abaixo que poderia ser chamado, mas o problema e como usa-lo em cima. Como poderei utilizar o ctl do tipo control para saber se o conteudo esta vazio ou não, já que o intellisense não tem uma propriedade .value ou . text?

Dim strMessage As String

strMessage = "Os campos estao vazios!"

Dim strScript As String = "&lt;script language=JavaScript>"

strScript += "alert(""" & strMessage & """);"

strScript += "</script>"

Como fazer isso no codigo em cima?

Obrigado uma vez mais pela possivel ajuda!

olha... não programo em aspx. mas uma logica possivel seria o seguinte...

cria uma variavel auxiliar.

tipo um inteiro com valor inicial igual a 0.

ai dentro do for each

você coloca um if pra testar se é caixa de texto, e depois você coloca outro if dentro pra saber se a caixa tah vazia.

se ela tiver vazia você num faz nada...

se ela tiver alguma informação você coloca q auxiliar é igual a 1.

ai fora do for each você coloca assim...

se auxiliar == 0

exibe uma mensagem q diz q todos os campos estão vazios...

se não

limpa os campos.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...