Utilizando o ViewState em ASP.Net

Escrito em 24 de março de 2007 em Asp.Net por Leonel Togniolli

Já mostrei o que é o ViewState e como os controles de ASP.Net fazem para guardar informações dentro dele. Agora vamos ver como podemos guardar nossos próprios dados nesse campo oculto.

A classe que representa uma página, no ASP.Net, possui uma propriedade ViewState. Ela, é, basicamente, uma coleção de items armazenados por Nome/Valor. Podemos guardar qualquer informação nesse campo, e obtê-la novamente a qualquer momento, desde que seja na mesma página.

Para servir como exemplo, vamos criar uma aplicação com um TextBox, um botão e um Label. O objetivo é, ao clicar no botão, ler um número do TextBox, e acumular esse valor, mostrando a soma total no Label. O acumulador começa em zero.

Podemos implementar esse problema assim:

procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
const
  ChaveTotal = 'Total';
var
  Valor: Integer;
  Total: Integer;
begin
  Valor := Int32.Parse(TextBox1.Text);
  if Assigned(ViewState[ChaveTotal]) then
    Total := Integer(ViewState[ChaveTotal])
  else
    Total := 0;
  Total := Total + Valor;
  ViewState[ChaveTotal] := System.Object(Total);
  Label1.Text := Total.ToString;
end;

Dessa forma, estamos guardando um valor que sobrevive atualizações de página em um campo oculto dentro dela. O valor não é compartilhado por outros usuários que estejam acessando o site ou por outras páginas que esse mesmo usuário possa visitar. Quando o browser for fechado, o valor é perdido. E, como já vimos anteriormente, é fácil decodificar o viewstate (apesar de ser mais difil alterá-lo), portanto não armazene informações confidenciais dessa maneira.


Não há comentários em 'Utilizando o ViewState em ASP.Net' »

Assine os comentários usando RSS ou faça um TrackBack para 'Utilizando o ViewState em ASP.Net'.