O DropDownList do ASP.NET pode fazer bind com uma lista genérica(System.Collections.Generic.List), desta forma podemos trabalhar orientado a objetos ou da forma já comum utilizando DataTable. Neste exemplo abaixo criaremos uma classe de Pessoa, criaremos uma lista genérica do tipo Pessoa e faremos o bind com o DropDownList.
Crie um novo site e adicione a classe Pessoa no diretório App_Code, conforme imagem abaixo:
Imagem 1 - Estrutura da aplicação
Coloque duas propriedades na classe pessoa, uma do tipo inteiro Codigo e outra string Nome. Como estamos utilizando o ASP.NET 3.5 podemos fazer conforme código 1:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public class Pessoa
{
public Pessoa(int codigo, string nome)
{
this.Codigo = codigo;
this.Nome = nome;
}
public int Codigo { get; set; }
public string Nome { get; set; }
}
Código 1 - Classe Pessoa(ASP.NET 3.5)
Para quem utiliza o ASP.NET 2.0 deverá escrever conforme Código 2:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public class Pessoa
{
private int codigo;
private string nome;
public Pessoa(int codigo, string nome)
{
this.Codigo = codigo;
this.Nome = nome;
}
public int Codigo
{
get
{
return codigo;
}
set
{
codigo = value;
}
}
public string Nome
{
get
{
return nome;
}
set
{
nome = value;
}
}
}
Código 2 - Classe Pessoa(ASP.NET 2.0)
Na página, adicione um DropDownList no Default.aspx, altere seu nome para ddlPessoa, conforme Imagem 2 :
Imagem 2 - Adicionando o DropDownList ddlPessoa
Visualize o CodeBehind do Default.aspx(Default.aspx.cs) e no evento Page_Load adicione o código conforme código 3, este cria uma lista de pessoas, faz as configurações necessárias no ddlPessoa e chama o método DataBind para adicionar os valores ao DropDownList.
As configurações necessárias no ddlPessoa é definir a fonte de dados que irá montar os itens, isto é feito definindo a propriedade DataSource, configuramos a lista de Pessoa. Também é necessário configurar as propriedades DataValueField e DataTextField, como cada item do nosso DataSource é uma instância de Pessoa, definimos nestes quais as propriedades de Pessoa, neste caso as propriedades Codigo e Nome.
Outra inforamção importante é que estamos usando generics é necessário adicionar o using ao namespace System.Collections.Generic:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Collections.Generic;
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<Pessoa> listaPessoas = new List<Pessoa>();
listaPessoas.Add(new Pessoa(0, "Mateus"));
listaPessoas.Add(new Pessoa(1, "Maria"));
listaPessoas.Add(new Pessoa(2, "Jose"));
ddlPessoa.DataSource = listaPessoas;
ddlPessoa.DataValueField = "Codigo";
ddlPessoa.DataTextField = "Nome";
ddlPessoa.DataBind();
}
}
Código 3 - Código da página Default.aspx.cs
Salve tudo e execute o site, visualize também o HTML gerado.Imagem 3 - Resultado no navegador