Desenvolvimento - Visual Basic .NET

Somando Valores no DataGrid

Há casos onde necessitamos somar o valor de uma determinada coluna do DataGrid de uma aplicação ASP.NET, onde é exibido ao usuário um valor total/soma para conferência...

por Israel Aéce



Na coluna que desejar "somar", deverá converte-la para "TemplateColumn" e com isso já conseguirá inserir um controle do tipo Label na seção FooterTemplate qual utilizaremos para atribuir o valor total da soma. O código da seção Footer deverá ficar semelhante ao código abaixo:


Depois do design pronto, criamos um membro em nosso WebForm chamado "_total" qual usaremos para contabilizar o valor da coluna "Valor" da nossa tabela.


Como falamos acima, vamos efetuar a soma através do evento ItemDataBound do DataGrid, onde com isso vamos contabilizando nosso membro "_total". Temos que verificar qual o "tipo" da linha qual está sendo inserido o item/registro, pois nesse caso, teremos que prever dois tipos: Item Normal ou um Footer. Vejamos abaixo como ficará o evento ItemDataBound:


Analisando o código acima, podemos ver que utilizamos uma condicional para verificar qual o tipo da linha. Se ela for um tipo Item ou AlternatingItem, sabemos que é uma linha de exibição de dados normal e sendo assim, apenas atribuímos o valor para o nosso membro "_total". Agora se for a linha do tipo Footer, devemos exibir a soma para o usuário. Como nesse ponto já passamos por todos os registros da página corrente do DataGrid, nos resta atribuir o valor do nosso membro "_total" no controle Label que colocamos no Footer.

Convertemos o DataItem para um tipo DbDataRecord (como este passo não está no escopo deste artigo, não vamos abordá-lo. Mas como referência, fica este post) para termos acesso a coluna "Valor" e assim contabilizar no membro "_total". A classe DbDataRecord está contida no Namespace System.Data.Common.

E por fim, através do DirectCast, recuperamos o Label "lblValorTotal" e atribuímos o valor do membro "_total".
Israel Aéce

Israel Aéce - Especialista em tecnologias de desenvolvimento Microsoft, atua como desenvolvedor de aplicações para o mercado financeiro utilizando a plataforma .NET. Como instrutor Microsoft, leciona sobre o desenvolvimento de aplicações .NET. É palestrante em diversos eventos Microsoft no Brasil e autor de diversos artigos que podem ser lidos a partir de seu site http://www.israelaece.com/. Possui as seguintes credenciais: MVP (Connected System Developer), MCP, MCAD, MCTS (Web, Windows, Distributed, ASP.NET 3.5, ADO.NET 3.5, Windows Forms 3.5 e WCF), MCPD (Web, Windows, Enterprise, ASP.NET 3.5 e Windows 3.5) e MCT.