Acessando valores em UserControls - ASCX

by Israel Aece 2. November 2005 23:20

É importante dizer que precisamos armazenar o valor definido para a propriedade no ViewState, porque sem isso, um PostBack fará com que o valor seja perdido, não resultando no comportamento esperado. Isso não se faz necessário quando estamos expondo ou atribuindo um valor para um WebControl, pois o mesmo já trata de armazenar o valor no ViewState internamente.

Outra observação bastante importante que devemos nos atentar, pois infelizmente ao contrário de utilizarmos WebControls, que quando fazemos Drag & Drop no Visual Studio .NET, o mesmo declara o controle no CodeBehind para termos acesso ao mesmo. Já com os User Controls isso não acontece, obrigando-nos a declarar o controle com o mesmo ID que está no WebForm (ASPX) (ver figura ao abaixo).

Em primeiro lugar, veremos como fica a criação da propriedade que armazenará o valor para posteriormente utilizarmos no WebForm:

public string NomeUsuario{
    get{
        string nomeUsuario = ViewState["NomeUsuario"] as string;
        if(nomeUsuario != null)
            return nomeUsuario;

        return string.Empty;
    }
    set{
        ViewState["NomeUsuario"] = value;
    }
}

Analisando o código acima, temos uma simples propriedade que recebe e retorna um valor do tipo String e a armazena e recupera do ViewState. Para finalizar, depois de arrastado o User Control para o WebForm, basta irmos no CodeBehind e declarar o mesmo, seguindo as observações acima, reparando que ele seja declarado com o mesmo ID do ASPX:

protected Dados Dados1;

// Para acessar:

Dados1.NomeUsuario = "Nome do Usuário";
Response.Write(Dados1.NomeUsuario);

Tags:

ASP.NET

Comments are closed

Powered by BlogEngine.NET 1.5.0.0
Theme by Mads Kristensen

Sobre

Meu nome é Israel Aece e sou especialista em tecnologias de desenvolvimento Microsoft, atuando como desenvolvedor de aplicações para o mercado financeiro utilizando a plataforma .NET. [ Mais ]

Twitter

Indicações

Introdução ao ASP.NET Web API - e-Book