FLP 0 Denunciar post Postado Maio 15, 2009 Bom dia a todos do Forum Estou com uma duvida e axo que é bem simples de resolver Estou criando uma aplicação em c# no visual studio é uma pagina de cadastro, q tem um select pra ve se o usuario e senha existem se existirem dão erro q é mostrado em um "text label" q criei na pagina estou querendo passa toda a validação do cadastro em uma class, Existe algum jeito da class identificar esse label da pagina para q o erro possa ser mostrado?? :unsure: Compartilhar este post Link para o post Compartilhar em outros sites
Juliano.net 2 Denunciar post Postado Maio 15, 2009 O jeito mais correto é que sua classe dispare um evento que será tratado em sua página. Dê uma olhada sobre C# Event Handlers no MSDN. Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Maio 15, 2009 Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications Compartilhar este post Link para o post Compartilhar em outros sites
Angelo Compri 0 Denunciar post Postado Maio 15, 2009 Opa.. Acredito que é bem simples: 1) Não! A classe não enxerga o label e embora exista maneiras de que isso realmente possa acontecer, você estará vinculado sua classe ao handle do label, o que tornaria inutil ter uma classe que só serve para uma pagina. 2) Na sua classe, você pode criar um "metodo delegavel", que nada mais é do que um evento de sua classe. Delegates são muito usados em construção de componentes, sugiro que procure algo do tipo.. Aqui vai um exemplo que fiz para seu post. class Login { string _userName; string _password; public string UserName { get { return _usuario; } set { _usuario = value; } } public string Password { get { return _senha; } set { _senha = value; } } // - Crie um delegate chamado ValidadeHandler, ao qual poderá ser encapsulado // qualquer metodo que receba uma script como parametro public delegate void ValidadeHandler(string message); // Defina um evento a sua classe que será baseado no seu deledate public event ValidateHandler Validade; // No seu metodo de validação do usuário, chame o delegate como for necessário. public bool UserValidate() { OnValidate("Recebendo dados do usuário."); OnValidate("Verificando existencia do usuário."); if (_userName == "Angelo") { OnValidate("Usuário confirmado, verificando senha."); if (_password == "Compri") { OnValidate("Senha confirmada."); OnValidate("Bem vindo Angelo Compri!"); return true; } else { OnValidate("Senha incorreta. Acesso negado"); return false; } } else { OnValidate("usuário incorreto."); return false; } } // Por default utilize o prexifo "On" seguido do nome do seu delegate protected void OnValidate(string message) { // Sempre verifique se seu evento esta sendo utilizado antes de invoca-lo. if (Validade != null) { Validade(message); } } } Feito isso, sua classe agora possui um evento chamado "OnValidade" onde que você pode atribuir um metodo que atualiza seu label. Espero te-lo ajudado. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Maio 15, 2009 Assim como já foi dito, tente separar as responsabilidades. Deixe que sua classe faça a validação, mas quem precisa mostrar na tela as informações é sua página, é responsabilidade dela. O que sua classe pode fazer é retornar uma mensagem, ai você pega ela no aspx.cs e mostra no label. Compartilhar este post Link para o post Compartilhar em outros sites