Como trabalhar com objetos aninhados (associados) em um GridView a partir de um ObjectDataSource

Olá pessoal, tudo bom?

Vejam abaixo um exemplo de como trabalhar em um GridView com valores oriundos de uma lista de objetos aninhados (associados).

No exemplo temos um GridView que exibe dados de produtos com suas respectivas categorias e fornecedores, sendo que o objeto da classe produto possui uma associação com o objeto da classe categoria e outra associação com o objeto da classe fornecedor, não sendo necessário realizar outros “selects” ou “junções” para recuperação desses dados.

Toda codificação necessária ocorre dentro do evento RowDataBound, lembrando que esse evento ocorre todas as vezes que os dados são associados a uma linha do GridView. Repare que as propriedades LigaCategoria e LigaFornecedor são as associações entre a classe Produto, Categoria e Fornecedor.

Exemplo:

...
...
protected void gvProdutos_RowDataBound(object sender, GridViewRowEventArgs e)
{
   //Verifica se o que está sendo colocado na linha é um objeto da classe Produto
   if (e.Row.DataItem is Produto)
   {
      //Cria um objeto da classe Produto, que já tem a referência para o objeto da classe Categoria
      Produto prod = (Produto)e.Row.DataItem;
      e.Row.Cells[2].Text = prod.LigaCategoria.Nome; //Obtendo o nome da categoria do produto
      //Personaliza a aparência da coluna
      e.Row.Cells[2].Font.Bold = true;
      e.Row.Cells[2].ForeColor = System.Drawing.Color.Red;

      //Cria um objeto da classe Produto, que já tem a referência para o objeto da classe Fornecedor
      e.Row.Cells[3].Text = prod.LigaFornecedor.NomeEmpresa; //Obtem o nome da empresa fornecedora
      //Personaliza a aparência da coluna
      e.Row.Cells[3].Font.Bold = true;
      e.Row.Cells[3].ForeColor = System.Drawing.Color.Blue;
   }
}
...
...

Grande abraço,
Eduardo Henrique Rizo

Anúncios

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , , ,
Publicado em ASP.NET, Desenvolvimento Web, SQL Server

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br

%d blogueiros gostam disto: