Olá! Wednesday, 06 de November de 2024.



Dicas CódigoFonte.net
Wednesday, 17 de September de 2008

Armazenando e Recuperando uma List do ViewState

Pessoal, como andam os grandes projetos? eheheh

Então, hoje surgiu um problema quando estava implementando um UserControl em ASP.Net. Neste UserControl, eu criava um objeto do tipo List<> e armazenava ele no ViewState. Porém, na recuperação deste objeto, o framework acusava uma excessão, dizendo que não era possível converter o objeto genérico para um outro objeto genérico.

Procurando pelo mesmo problema no Google, encontrei uma solução que permite tal procedimento. Segue explicação:

Vamos imaginar que temos uma página Web que simula a criação da lista genérica e logo depois recuperamos esta lista. Veja que você pode implementar este exemplo da forma que desejar, criando a sua lista no Page_Load e recuperando-a em um evento de um botão, por exemplo.

public partial class _Default : System.Web.UI.Page {     protected void Page_Load(object sender, EventArgs e)     {         // Ilustração da criação de uma Lista que contém objetos Customer         List CustomerList = new List();         Customer SingleCustomer = new Customer();         SingleCustomer.CustomerAddress = "my address";         SingleCustomer.CustomerName = "my name";         CustomerList.Add(SingleCustomer);         // Converta a lista para um array e salve no ViewState         // ao invés de serializá-la manualmente         ViewState.Add("Customers", CustomerList.ToArray());         Customer[] newArray = (Customer[])ViewState["Customers"];         List newList = new List(newArray);         Response.Write(CustomerList[0].CustomerName);     }     // Classe do objeto Customer que deve ser serializada         [Serializable]     public class Customer     {         private string _CustomerName = "";         private string _CustomerAddress = "";           public string CustomerName         {             get             {                 return _CustomerName;             }             set             {                 _CustomerName = value;             }         }         public string CustomerAddress         {             get             {                 return _CustomerAddress;             }             set             {                 _CustomerAddress = value;             }         }     } }

Pronto. Agora é só testar e ver que nossa List foi salva no ViewState e pode ser usada normalmente.


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