Usuário com melhor resposta
Error Provider

Pergunta
-
Fala ae galera to utilizando o error provider em um projeto mais to com algumas dúvidas e caindo em alguns erros.
bool Error = false; private void ValidarForm() { if(txtNome.Text == sting.Empty) { erp.SetError(txtNome, "Preencha o campo Nome"); Error = true; } else { erp.SetError(""); Error = false; } if(txtLogradouro.Text == sting.Empty) { erp.SetError(txtLogradouro, "Preencha o campo Logradouro"); Error = true; } else { erp.SetError(""); Error = false; } } private void btnSalvar_Click(object sender, EventArgs e) { cliente.Nome = txtNome.Text; cliente.Endereco.Logradouro = txtLogradouro.Text; cliente.Endereco.CEP = txtCEP.Text; cliente.Endereco.Bairro = txtBairro.Text; cliente.Endereco.Estado = cmbEstado.Text; cliente.DataCadastro = DateTime.Now; cliente.Email = txtEmail.Text; cliente.Telefone = txtTelefone.Text; ValidarForm(); if (Erro == false) { cadastrarClienteHandler.Gravar(cliente); this.DialogResult = DialogResult.OK; bs.ResetBindings(false); this.Close(); } }
Ai o que acontece seu eu preencher os campos do início e do final e aperta o salvar ele passa. Pois os campos do final acabam dando condição pra isso...Alguém tiver alguma dica ou solução manda ai...
Grato desde já!
Portal: www.teleportese.com
- Editado Ricardo Masala segunda-feira, 9 de janeiro de 2012 18:33
Respostas
-
Oi Ricardo,
Veja se isso ajuda:
private void ValidarForm() { Error = false; if(txtNome.Text == sting.Empty) { erp.SetError(txtNome, "Preencha o campo Nome"); Error = true; } if(txtLogradouro.Text == sting.Empty) { erp.SetError(txtLogradouro, "Preencha o campo Logradouro"); Error = true; } }
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique- Marcado como Resposta Ricardo Masala terça-feira, 10 de janeiro de 2012 12:20
Todas as Respostas
-
O que considera Início ? E final? Creio que seja Início campo Nome e final os restantes.
O método ValidarFormulario instanciado no começo do código é o mesmo que ValidarForm() ?
Creio que seja também.
Vamos lá:
Pelo que entendi o tratamento se restringe ao atributo cliente.Nome
Então deve pensar quais campos mais precisa validar !
Minha dica é esta:
Sua função faz duas vezes a mesma coisa para a propriedade Nome, observe acima.
A solução é validar outros campos que deseja validar pois do contrário como você mesmo notou "os campos do final sempre acabam dando condições pra isso..."
- Sugerido como Resposta Eduardo Henrique Belinatti segunda-feira, 9 de janeiro de 2012 17:43
- Não Sugerido como Resposta Ricardo Masala segunda-feira, 9 de janeiro de 2012 18:00
-
Eu coloquei só o nome e corrigi lá pois dupliquei mais só coloquei dos campos como exemplo pra não colocar o código todo. E início e final que eu digo são os campos...
Portal: www.teleportese.com- Editado Ricardo Masala segunda-feira, 9 de janeiro de 2012 18:01
-
Entendi o lance do exemplo.
Mas pela lógica você tem feito errado:
txtLogradouro.Text == sting.Empyt
Mas a palavra correta é Empty
Sugiro utilizar outro método mais elaborado:
if(String.IsNullOrEmpty(txtNome.Text.Trim()))
Referência:
http://msdn2.microsoft.com/en-us/library/system.string.isnullorempty.aspx
-
Cara o exemplo é só o exemplo código ta certo aqui na minha máquina ele valida mais oque acontece ele vem passando por todos os campos ai vamos supor que o campo nome esteja certo e o logradouro também mais um terceiro campo não e o quarto campo sim oque acontece, o quarto campo acaba dando condição ao terceiro campo que não está correto entendeu?
nome = ok
logradouro = ok
telefone = erro
email = ok
Portal: www.teleportese.com- Editado Ricardo Masala segunda-feira, 9 de janeiro de 2012 18:24
-
Oi Ricardo,
Veja se isso ajuda:
private void ValidarForm() { Error = false; if(txtNome.Text == sting.Empty) { erp.SetError(txtNome, "Preencha o campo Nome"); Error = true; } if(txtLogradouro.Text == sting.Empty) { erp.SetError(txtLogradouro, "Preencha o campo Logradouro"); Error = true; } }
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique- Marcado como Resposta Ricardo Masala terça-feira, 10 de janeiro de 2012 12:20
-
-
-
Olá Ricardo,
Tenta fazer assim:
int valor = 0; if (!Int32.TryParse(this.txtCampo.Text, out valor)) { erp.SetError(this.txtCampo, "Valor numérico inválido"); Error = true; }
ps.: todo trabalho é em nome da comunidade :)
[]s!
Fernando Henrique Inocêncio Borba Ferreira
while(alive){ this.WriteCode(); }
Blog: http://ferhenriquef.wordpress.com/
Twitter: @ferhenrique