Armazenando dados no ViewState – Parte I
Segue alguns livros que publiquei pela editora Ciência Moderna.
Olá pessoal, meu nome é Mauricio Junior, mostrarei como armazenar dados dentro do ViewState. Para quem não sabe o que é ViewState, este artigo irá clarear um pouco no seu desenvolvimento. Antes do começo, segue os pré-requisitos para o desenvolvimento:
- Visual Studio.NET 2005;
- Linguagem C#.NET;
- Conhecimento com envio de dados.
A IDE desenvolvida pela Microsoft chamada Visual Studio.NET 2005 veio para revolucionar o mercado em desenvolvimento de software. Para quem não adquiriu ainda, segue link para download gratuitamente. A versão express é gratuita e baseada para estudantes, desenvolvedores que estão começando e outros. Vale a pena conferir.
Além da versão Visual Studio.NET 2005 Express Editions, está disponível a versão do Express banco de dados SQL SERVER 2005.
Link: http://msdn.microsoft.com/vstudio/express/default.aspx
Seguindo com o artigo, cliquei no menu HELP, depois
Como dito antes, este artigo estará mostrando como armazenar os dados OOP (programação orientado a objetos) no campo ViewState. Percebo que quando executo uma página ASP.NET existe um campo oculto no meu código HTML com o nome _ViewState, o mesmo é gerado com dados e objetos do formulário WEB, é basicamente uma lista de nomes e valores que são salvos depois que a página da um postback, ou é postada.
O _ViewState armazena todos os dados da página ocultamente do HTML, porém existe algumas limitações, o mesmo só pode armazenar os dados que são serializados, ou seja, SERIALIZABLE. O ASP.NET compara o estado de um controle com o seu estado anterior.
Indo para a prática
Na execução dessa primeira página, segue a ilustração de como é armazenado. Não desenvolvi nenhuma linha de código e o ViewState já está lá.
Notei e note você também que os dados são criptografados, portanto existe segurança de dados dentro desse campo _ViewState.
Criei uma outra classe chamada UsuarioTO.cs com alguns dados declarados do tipo string.
Segue o código:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// Classe com campos de usuários
/// </summary>
[Serializable]
public class UsuarioTO
{
string usuario;
string senha;
string dataNascimento;
string email;
public string Email
{
get { return email; }
set { email = value; }
}
public string DataNascimento
{
get { return dataNascimento; }
set { dataNascimento = value; }
}
public string Senha
{
get { return senha; }
set { senha = value; }
}
public string Usuario
{
get { return usuario; }
set { usuario = value; }
}
}
Explicação:
O primeiro de tudo, coloquei a classe do tipo SERIALIZABLE antes da assinatura. Declare as variáveis necessárias como usuario, senha, dataNascimento e email, depois gerei GET e SET das mesmas. Se você ainda não sabe como gerar GET e SET automaticamente com a ferramenta VS 2005, acesse o artigo abaixo que mostrar como gerar.
http://www.aspneti.com/visualizar/downloadArtigo.aspx?ch_artigos=41
Depois de gerar a classe serializada, criei uma página chamada Default.aspx onde possui um método que armazena os dados dentro do viewstate usando a classe UsuarioTO.cs.
Segue a ilustração da classe:
Código:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
//declarando variavel para ser usada no viewstate
private const string KEY_VIEW_STATE = "__NomeValor";
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// método que armazena os valores dentro do view state
/// </summary>
protected void ArmazenaDados()
{
UsuarioTO to = new UsuarioTO();
to.Usuario = "Mauricio Junior";
to.Senha = "Senha";
to.DataNascimento = "29/07/1982";
to.Email = "
ViewState.Add(KEY_VIEW_STATE, to);
}
}
Explicação:
Criei uma constante chamada KEY_VIEW_STATE com o valor __NomeValor. Essa variável é o nome de dentro do ViewState. Mais abaixo existe um método que criei chamado ArmazenaDados() onde instancio o método da classe UsuarioTO. Armazeno os valores manualmente por exemplo: to.Usuario = “Mauricio Junior”. A última linha armazeno propriamente os dados e os valores dentro do ViewState. ViewState.Add(KEY_VIEW_STATE, to).
Não posso esquecer de coloca o método ArmazenaDados() dentro do método Load.
protected void Page_Load(object sender, EventArgs e)
{
ArmazenaDados();
}
Executei o código e o mesmo gerou os valores armazenando dentro do ViewState. Note que os valores realmente aumentaram.
Por enquanto esse artigo fica por aqui. Meu nome é Mauricio Junior e estou à disposição de todos. No próximo artigo, mostrarei como pegar os dados criptografados e exibir na tela usando OOP.
Mauricio Junior
e-mail: mauricio@ascompras.com ou mauricio@aspneti.com
Community: www.aspneti.com
Site: www.ascompras.com
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.