Sou um apaixonado por produtividade e inovação. Sempre procuro novas tecnologias, maneiras diferente de fazer a mesma coisa, no entando, isso sempre toma muito tempo este é o motivo de manter este blog. Compartilhar algumas dicas, truques sobre o que adoro fazer.
Há tempos utilizo LinqToSql e acredito que todos os componentes que fazem mapeamento relacional como LinqToSql, EntityFramework, Hibernate, JPA e etc, fazem com que o desenvolvimento reduza pela metade do tempo, desde que, saiba exatamente como usar o framework, neste caso a curva de aprendizado será grande, excepcionalmente se você não for um Nerd que dedica horas da sua vida à pesquisar coisas que talvez nunca use. :)
Você pode utilizar um LinqDataSource como fonte de dados para GridView, FormView, DetailsView.
Para isso você deverá criar um Contexto para o LinqToSql (existem diversos tutoriais na internet, por ser bastante básico, não vou entrar em detalhes por não ser o foco do post).
Criado o Contexto você inclui o objeto LinqDataSource, neste exemplo, simulo um objeto Contexto (dbDataContex) Ordenando por “Nome”, utilizo um objeto anônio (Anonymous Types), em TableName, informo qual a classe (Entidade) que contem o Mapeamente Relacional gerado pelo LinqToSql, por fim vinculamos o evento (linqDsClientes_Selected) que será utilizado na seleção de um item no GridView.
<asp:LinqDataSource ID="linqDsClientes" runat="server"
ContextTypeName="dbDataContext" OrderBy="Nome"
Select="new (IDCliente, Nome, Email, DataNascimento)"
TableName="ClienteEntidades" onselected="linqDsClientes_Selected">
</asp:LinqDataSource>
Com objeto criado, vamos associar ao gridview, para isso basta na propriedade DataSourceID, informar o ID do objeto LinqDataSource.
<asp:GridView ID="GridView1" runat="server" DataSourceID="linqDsClientes" />
<!--Label que informará quantos registros foram encontrados -->
<asp:Label ID="lblQtdade" runat="server" />
Pronto, assim, já temos vinculado a grid com o controle, agora, vamos manipular as informações.
Para filtrar informações no LinqDataSource (WhereParameters).
linqDsClientes.WhereParameters.Clear(); //Limpa possíveis parâmetros
linqDsClientes.Where = "Nome.Contains(@Nome)"; // Procuro na propriedade Nome o texto que contenha o parâmetro passado
linqDsClientes.WhereParameters.Add("Nome", System.Data.DbType.String, txtNome.Text); // Adiciono os parâmetros.
Agora uma coisa bem simples, que demorei um tempão para descobrir é o count(), que pode ser feito através do Evento OnSelected.
protected void linqDsClientes_Selected(object sender, LinqDataSourceStatusEventArgs e)
{
lblResultado.Text = string.Format("Total de clientes encontrados: {0}", e.TotalRowCount);
}
Certamente ainda há muito o que ser pesquisado sobre este objeto, mas, foi uma pequena contribuição…
Mande sugestão ou dúvida para contato@alexandreminato.com.br
Até a próxima 8-)
f5108dcf-4405-4f5b-bdf9-195c7aec1fa9|0|.0