sábado, 3 de maio de 2008

Trabalhando com dados - GridView

Quando trabalhamos com fontes de dados, há disponível pelo ASP.NET alguns controles para nos auxiliar, como o GridView, o DataList, o DetailsView, FormView e o Repeater. O ASP.NET 3.5 ainda trouxe dois novos controles: ListView e o Repeater.

Os controles são basicamente divididos para exibições de vários registros: GridView, DataList, Repeater e ListView. E exibição de um registro, que é possível usando o DetailsView ou o FormView.

Neste momento vamos falar o GridView, que foi introduzido no ASP.NET 2.0 e substitui o antigo DataGrid. O GridView mostra dados de uma fonte de dados de maneira tabular, onde cada linha do GridView representa uma linha da fonte de dado. O GridView ainda possúi:

  • Ordenação

  • Atualização e exclusão

  • Paginação

  • Seleção de linha

  • Multiplas chaves

  • Multiplos campos de dados para hiperlinks

  • Cutomização de aparencia através de temas(themes) e estilos(styles)

Cada coluna do GridView representa um atributo do registro, no caso do DataTable, um DataColumn. Cada coluna do GridView é uma classe que descende de DataControlField, e as opções são:

Tipo de Coluna

Descrição

BoundField

Mostra o valor de um campo como texto

ButtonField

Mostra um botão de controle

CheckBoxField

Mostra um CheckBox

CommandField

Mostra um botão de comando para editar, inserir ou excluir

HyperLinkField

Mostra um texto como hiperlink

ImageField

Mostra uma imagem

TemplateField

Mostra um conteúdo de acordo com um modelo(Template) do usuário

O GridView ainda tem a propriedade AutoGenerateColumns, que se habilitadade gera automaticamente colunas para o GridView.

Mostrando Dados com o GridView

Podemos fazer bind o GridView com dados através de controles DataSources(SqlDataSource, XMLDataSource, LinqDataSource) ou com qualquer fonte de dados que implemente a interface System.Collections.IEnumerable.

Para fazer bind com controles DataSource deve-se definir a propriedade DataSourceID do GridView com o ID do controle DataSource. Este é preferível em relação ao debaixo, pois provê automaticamente ações como ordenação, atualização, exclusão e paginação.

Para fazer bind com controles que implementam a interface System.Collections.IEnumerable, deve-se através de programação definir a propriedade DataSource e chamar o método DataBind.

Customizando Interface com o Usuário

De maneira mais genérica, podemos customizar a aparência do GridView utilizando Thema e skin. O que permite uma padronização de interface da aplicação Web. Mas podemos também customizar definindo propriedades de estilo de diferentes partes do controle:

Propriedade

Descrição

AlternatingRowStyle

Define o estilo para as linhas alternadas no controle GridView. Quando esta propriedade é definida as linhas do GridView alternam estilos entre RowStyle e AlternatingRowStyle.

EditRowStyle

Define o estilo da linha que está sendo editada no GridView.

EmptyDataRowStyle

Define o estilo das linhas em branco mostradas no GridView, quando a fonte de dados não tem nenhum registro.

FooterStyle

Define o estilo para a linha rodapé do GridView.

HeaderStyle

Define o estilo da linha cabeçalho do GridView.

PagerStyle

Define o estilo do paginador do GridView.

RowStyle

Define o estilo das linhas do GridView. Se a propriedade AlternatingRowStyle é definida as linhas do GridView alternam estilos entre RowStyle e AlternatingRowStyle.

É possível também mostrar ou ocultar o cabeçalho e o rodapé do GridView utilizando respectivamente das propriedades ShowHeader e ShowFooter.

Referências:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview(VS.80).aspx
http://www.microsoft.com/brasil/msdn/Tecnologias/aspnet/ExplorandoGridView.mspx