Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

Este artigo apresenta os principais controles usados em aplicações Web do tipo ASP.NET para editar e apresentar os dados. Entre eles, estão os controles GridView e Listiew. Além disso, é também mostrado os Data Source do ASP.NET, utilizados para fazer ligação com dados e consequentemente com algum controle Visual.

Em que situação o tema é útil

O tema é útil na compreensão do funcionamento dos controles de apresentação e edição de dados de projetos do tipo ASP.NET. Este que é um tipo de projeto voltado para aplicações Web que permite um rápido desenvolvimento graças às facilidades proporcionadas pela IDE do Visual Studio.

ASP.NET - Entendendo os controles de dados

Nos primeiros anos em que a Internet saiu dos meios científicos e acadêmicos e passou para a realidade de pessoas comuns, o seu conteúdo era meramente baseado em texto e eventualmente algumas imagens.

Foi o auge das páginas HTML que era suficiente para gerar o conteúdo que se procurava.

Mas, como sabemos tudo evoluiu e hoje a Internet está mais para uma plataforma de distribuição de conteúdo e para realização de negócios do que mero meio de comunicação.

Assim, as novas necessidades deram origem a novas ferramentas. Não é possível criar uma aplicação rica em conteúdo, interagindo com bancos de dados e outros softwares usando meramente HTML, ainda que com a nova versão desta linguagem haja algum avanço.

As páginas ASP.NET são uma evolução das páginas ASP originais e são baseadas em server controls assim como sua antecessora.

O principal trabalho destes controles é permitir ao programador ter uma camada de abstração para trabalhar com dados. Neste artigo será realizado um overview nos principais controles de acesso a dados do ASP.NET e posteriormente alguns exemplos.

No início páginas dinâmicas eram criadas usando um tipo de aplicativo chamado CGI – Common Gateway Interface. Este tipo de aplicação recebe as solicitações (URL solicitado via browser pelo usuário, por exemplo), executa o processamento no servidor e gera o documento HTML. Ainda é utilizado em muitos casos e serve de ponto de partida para aplicações mais sofisticadas.

Veio então a páginas ASP de Active Server Pages e a sua evolução com a tecnologia ASP.NET.

Com este tipo de projeto, o programador passou a poder fazer boa parte do trabalho visualmente. Arrastando controles para uma janela da mesma forma que é (ou era) feito com aplicações para o desktop e editando suas propriedades e escrevendo manipuladores de evento (event handlers) na sua linguagem de programação preferida.

Nota do DevMan

O CGI é uma importante tecnologia na geração de páginas dinâmicas, permite a um navegador passar parâmetros para um programa alojado num servidor web. Assim, designam-se por scripts CGI os pequenos programas que interpretam esses parâmetros e geram a página depois de processá-los.

Event Handler são ações como clique do mouse, teclas pressionadas etc. Os processos de uma aplicação acontecem através dos eventos. No ASP.NET, por exemplo, um evento é gerado no Client e manipuladas no Server. Um exemplo clássico é quando um usuário clica em um botão exibido no navegador, assim, o evento Click é gerado. O servidor possui um bloco de código descrevendo o que fazer quando o evento é gerado, denominado de manipulador de eventos. Desta forma, quando a mensagem de evento é transmitida para o servidor, ele verifica se o evento Click tem um manipulador de evento associado.

O ASP.NET é uma opção para desenvolvimento rápido, consistente e produtivo para aplicativos que utilizam a Internet como plataforma.

Entre as principais vantagens em utilizar ASP.NET, podem ser enumeradas:

1. O uso de server controls, que permite a configuração de propriedades para controlar tanto a aparência como o comportamento dos elementos visuais. Os server controls dão suporte às folhas de estilo CSS, o que simplifica a definição do estilo do projeto.

2. Geração do HTML otimizado para o browser onde a página está sendo exibida. Ao receber as requisições do navegador, juntamente a aplicação recebe um identificador que ajuda a gerar o documento HTML que mais se adeque à realidade deste. Este processo nem sempre é perfeito, mas, é feito de forma transparente sem necessidade de intervenção do programador na maioria das vezes.

3. Suporte a scripts. As aplicações ASP.NET podem ter seu desempenho aprimorado ao permitir que utilize scripts no lado do usuário, evitando “N” solicitações ao servidor, que causam demora. Muitas tarefas como validação dos dados, ajuste da aparência do formulário e validação dos dados podem ser feitas com estes scripts.

4. Simplificação das tarefas de preenchimento de controles usando dados. O desenvolvedor ASP.NET não necessita de um conhecimento muito avançado no início para começar a vincular controles visuais com objetos e dados vindos de fontes como tabelas em bancos de dados. Tudo pode ser feito visualmente de forma mais rápida.

Além disso, é possível continuar editando manualmente o seu código HTML com todos os seus recursos, fazer a ligação dos dados manualmente e realizar ajustes no visual da página uma vez que o Visual Studio – a principal ferramenta para geração deste aplicativo – possui um editor HTML bastante completo.

Nota do DevMan

Server Controls são objetos ASP.NET. Os mesmos são executados quando uma página é solicitada e renderiza os mesmos no navegador. Muitos desses controles são semelhantes aos elementos HTML, como botões e caixas de texto. Outros controles, no entanto, possuem comportamento complexo, como os controles de calendário ou controles que gerenciam as conexões de dados.

Data Binding

Por data binding se define o processo de fazer ligação entre controles e uma fonte de dados. Estes que podem ser listas de objetos, registros de tabelas armazenadas em bancos de dados alocadas na memória, e assim por diante.

Esta ligação pode ser feita de algumas maneiras em páginas ASP.NET.

A mais simples é a partir de um objeto, onde você pode atribuir cada um de seus atributos de uma classe “X” para um controle (por exemplo, um TextBox). Considere a seguinte classe:


  public class ContaBancaria
  {
      public int IdBanco { get; set; }
      public string CodigoAgencia { get; set; }
      public string NumeroDaConta { get; set; }
      public DateTime DataDeAbertura { get; set; }
      public string NomeDoTitular { get; set; }
  }

Uma forma de popular (preencher com informações) os controles de uma página HTML é editando o código C# da classe vinculada com a página ASPX da seguinte forma:


      txtIdBanco.Text = minhaConta.IdBanco.ToString();
      txtCodigoAgencia.Text = minhaConta.CodigoAgencia;
      txtNumeroDaConta.Text = minhaConta.NumeroDaConta;
      txtDataDeAbertura.Text = minhaConta.DataDeAbertura.ToString("{dd/MM/yyyy}");
      txtNomeDoTitular.Text = minhaConta.NomeDoTitular; 

Desta forma, os controles são preenchidos conforme o objeto, mas, não há nenhuma ligação entre os mesmos. Caso os dados sejam alterados, cada controle precisará ser lido e seus valores validados e enviados de volta para o objeto.

Assim, é necessário usar outro recurso se quisermos manter uma ligação entre os controles e o objeto de dado. Este consiste em definir na marcação HTML um vínculo do controle visual com um objeto que serve para preencher os dados.

Mas não dá para fazer isso usando controles isoladamente, então, entram em cena os controles do ASP.NET orientados para manipulação de dados.

Controle DataSource

O controle DataSource não é visível para o usuário final, ou seja, mesmo que você adicione ele em uma página ASP.NET, este, só será visto no Visual Studio.

Este controle faz a ligação com uma fonte dos dados que podem ser um Webservice, uma lista de objetos, um arquivo XML ou uma tabela com dados recuperados de um banco de dados, por exemplo, o SQL Server. É através da utilização deste que se tem uma produtividade maior, uma vez que você usa assistentes visuais para fazer as configurações.

Em tempo de design o controle deve ser configurado a partir de controles visuais como DropDownList, GridView, FormView etc. Além disso, você também pode editar manualmente via marcação HTML:


  <asp:SqlDataSource ID="SelecionarContatoDataSource" runat="server" 
      ConnectionString="<%$ ConnectionStrings:ContatosConnectionString %>" 
      SelectCommand="SELECT [Id], [Nome] FROM [Contato]"></asp:SqlDataSource>

Este componente precisa ter um ID para que possa ser referenciado pelos controles, uma conexão com o banco armazenada no arquivo Web.Config da aplicação e uma instrução SQL armazenada no atributo SelectCommand.

...

Quer ler esse conteúdo completo? Tenha acesso completo