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

Return não Funciona Com Asp.net


§uiciDa£

Pergunta

E ai galera, qria uma ajuda de você's nesta classe olha:

public class Class1
{
    private string nome;
    public Class1()
    {
    }

    public string _nome
    {
        set
        {
            nome = value;
        }
        get
        {
            return nome;
        }
    }
}
é uma classe bem simples só pra mim testar classes com asp.net mais então surgiu um problema, quando eu tento pegar ovalor da string, parece que ele não me retorna ola
    protected void Button1_Click(object sender, EventArgs e)
    {
        a.nome = TextBox1.Text;
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write("nome :" + a.nome);
    }
na pagina quando eu clico no botao, ele só escrfeve
"nome : "

e mais nada. porque sera que ele não retorna valor ?

vlw aí, t+

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Você inverteu o nome do objeto privado com o nome da propriedade. Veja o correto:

        public class Class1
        {
            private string _nome;
            public Class1()
            {
            }

            public string nome
            {
                set
                {
                    _nome = value;
                }
                get
                {
                    return _nome;
                }
            }
        }

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

opa Gray, olha que estranho, eu dexei a classe do jeito que você citou acima, dai eu coloquei uma ação no botao, ficou assim

protected void Button1_Click(object sender, EventArgs e)
    {
        a.nome = TextBox1.Text;
        Response.Write("SET:" + a.nome);
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write("GET : " + a.nome);
    }

porem quando eu uso o o botao Get, ele não retorna nd, apenas escreve

"Get : "

já quando eu uso o botao do SET, ele me retorna

"Set : Nome que eu digitei"

porque isso Oo" ??

vlw t+

Link para o comentário
Compartilhar em outros sites

  • 0

Opa gray, eu declarei uma vez só sim, do mesmo jeito que eu faria em c#, olha ficou assim

public class _Default : System.Web.UI.Page 
{
    Class1 a = new Class1();
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        a.nome = TextBox1.Text;
        Response.Write("SET:" + a.nome);
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write("GET : " + a.nome);
    }
}

aa Leandro82, acho que intendi +/- como isso funciona, é como se a cada interação com o servidor, a minha página recarrega-se e então a classe fosse "recontruida" né ??

existe um meio de contornar isto ??

vlww t+

Link para o comentário
Compartilhar em outros sites

  • 0

Opa gray, eu declarei uma vez só sim, do mesmo jeito que eu faria em c#, olha ficou assim

public class _Default : System.Web.UI.Page 
{
    Class1 a = new Class1();
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        a.nome = TextBox1.Text;
        Response.Write("SET:" + a.nome);
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Write("GET : " + a.nome);
    }
}

aa Leandro82, acho que intendi +/- como isso funciona, é como se a cada interação com o servidor, a minha página recarrega-se e então a classe fosse "recontruida" né ?? existe um meio de contornar isto ??
O problema é justamente o que o Leandro82 disse. Uma saída seria guardar o objeto na sessão, de forma que ele vai existir o tempo todo para aquela sessão. No caso, você só precisa declará-lo (sem inicializar) e no evento Page_Load você tentar pegá-lo da sessão ou criá-lo se ele não existir:
    Class1 a;

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            a = (Class1)Session["a"];
        }
        catch (Exception)
        {
            a = new Class1();
            Session.Add("a", a);
        }
    }

O restante do seu código vai ser igual. Aqui deu certo. :)

Certo? ;)

Graymakin

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,3k
×
×
  • Criar Novo...