Olá! Friday, 19 de April de 2024.



Dicas CódigoFonte.net
Friday, 25 de May de 2007

Entendendo o que é ViewState

ViewState é o mecanismo qual o ASP.NET utiliza para manter o estado de controles e objetos quando um Postback ocorre na página. As informações são armazenadas em um controle html do tipo hidden chamado _VIEWSTATE.

Veja um exemplo do código-fonte da sua página que contém o ViewState:

Clique para ver a imagem em seu tamanho real

Note que os dados são criptografados, portanto existe segurança de dados dentro desse campo _ViewState.

Mesmo sem colocar nenhum controle na sua página o ViewState é criado automaticamente, pois por padrão ele é habilitado.

Podemos usar o ViewState para armazenar valores de objetos sem que seja necessário gravá-los no servidor. Porém, isto tem um desvantágem: Quanto mais objetos são armazenados no ViewState, maior será sua página. Então, tenha cuidado com o que coloca no ViewState. Eu já peguei páginas com ViewState gigantescos onde deixava a página com 50kb e após sua retirada, a página ficara com 22kb. Isto para usuários que possuem uma conexão com internet lenta, é um tormento.

A seguir demonstro como utilizar o ViewState para armazenar o valor de uma variável 'contador' que é incrementada toda vez que a página faz PostBack.

protected void Page_Load(object sender, EventArgs e) { int contador = 0; // número de requisições para esta página postada até agora if (ViewState["contador"] != null) { contador = Convert.ToInt32(ViewState["contador"]) + 1; } // grava o valor de contador no viewstate ViewState["contador"] = contador; Response.Write(contador); }

Note que o código só irá funcionar corretamente quando a página faz um PostBack ou é enviado um comando de POST via formulário para ela.

Existem várias formas de desativar o ViewState, seguem:

via programação
TeuControle.EnableViewState = False

via diretiva @Page
<@ Page EnableViewState="false" %>

via web.config



Bom, por hoje é só pessoal.

Espero que tenham gostado da dica.

t+

Comentários do artigo [Novo comentário]

Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:


CodigoFonte.net » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010