Recebi alguns emails questionando como trabalhar com
DropDownList e GridView utilizando o Linq como fonte de dados.
Não tem muito segredo.
Veja o exemplo abaixo.
Criei uma tabela em meu banco de dados com alguns campos.
Criei um arquivo no Visual Studio do tipo Linq to SQL,
chamado de Banco.dbml e adicionei a tabela aluno. Tenho um artigo escrito com maiores detalhes
sobre o linq.
No arquivo Default.aspx adicionei o DropDownList:
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DDLalunos" runat="server" />
</div>
</form>
Já no arquivo Default.aspx.cs eu indiquei como o controle
será carregado:
BancoDataContext bd = new
BancoDataContext();
DDLalunos.DataSource
= (from c in
bd.Alunos orderby c.nome select c).ToList();
DDLalunos.DataValueField
= "id";
DDLalunos.DataTextField
= "nome";
DDLalunos.DataBind();
Nesse exemplo eu estou listando os alunos ordenando por nome
e atribuindo ao DataSource.
Feito isso será necessário indicar qual é apresentado ao
usuário final e o campo que conterá o valor a ser enviado quando ocorrer o
submit.
Neste caso eu estou dizendo que o valor a ser passado é a
coluna ID e o valor apresentado para o usuário final é a coluna NOME.
O DataBind é responsável por carregar essa informações
indicadas anteriormente.
Ao executar, o resultado será como abaixo:
Eu posso indicar outra coluna para ser o valor apresentado
ao usuário final:
BancoDataContext bd = new
BancoDataContext();
DDLalunos.DataSource = (from c in bd.Alunos orderby
c.nome select c).ToList();
DDLalunos.DataValueField = "id";
DDLalunos.DataTextField = "email";
DDLalunos.DataBind();
Veja o resultado:
No caso do GridView é a mesma coisa.
No arquivo Default.aspx eu adicionei a chamada o Grid
<form id="form1" runat="server">
<div>
<asp:GridView ID="GDVAlunos" runat="server" AutoGenerateColumns="true" />
</div>
</form>
No arquivo Default.aspx.cs indiquei qual é a fonte de dados
e chamei o método DataBind();
GDVAlunos.DataSource
= (from c in
bd.Alunos orderby c.nome select c).ToList();
GDVAlunos.DataBind();
Nenhum comentário:
Postar um comentário