Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FLP

"text Label" em class

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.