Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ilano

Somando valores no DataGrid

Recommended Posts

Olá pessoal,

 

Tenho uma consulta q me retorna uma Grade Curricular. Estou povoando um DataGrid de forma a gerar o agrupamento por semestre e calculando o total geral de créditos.beleza até aí, só q estou precisando fazer uma soma neste DataGrid, mas de forma q esta soma seja dada em sub-totais, ou seja, total por grupo. No momento, estou fazendo a soma geral. Como faço o sub-total?

 

Os código q estou usando são:

 

Criar títulos para cada grupo:

 

Protected Sub DGGrade_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DGGrade.ItemCreated

If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then

'As duas linhas abaixo são usadas para colocar como título no DataGrid o campo que se deseja.

'Estas duas linha podem ser alteradas apenas os nomes dos campos entre áspas duplas.

If _intIDSemestre <> CType(DataBinder.Eval(e.Item.DataItem, "Sem_Codigo"), Integer) Then

_intIDSemestre = CType(DataBinder.Eval(e.Item.DataItem, "Sem_Codigo"), Integer)

 

'Criaremos uma nova Tablecell

Dim _TableCell As New TableCell

_TableCell.BackColor = Color.FromName("#1C5797")

_TableCell.HorizontalAlign = HorizontalAlign.Center 'Alinhar título, esta linha pode ser alterada

 

'Criaremos um novo Label

Dim _Label As New Label

_Label.ForeColor = Color.White

_Label.Font.Bold = True

_Label.Text = " " & CType(DataBinder.Eval(e.Item.DataItem, "Sem_Nome"), String)

 

'Adicionaremo o label ao TableCell

_TableCell.Controls.Add(_Label)

_TableCell.ColumnSpan = 7 'Número de colunas contidas no DataGrid, esta linha pode ser alterada

 

'Criaremos um novo DataGridItem e adicionaremos o TableCell

Dim DataGridRow As New DataGridItem(0, 0, ListItemType.Separator)

DataGridRow.Cells.Add(_TableCell)

 

'Adicionaremos o DataGridItem(Row) ao DataGrid

DGGrade.Controls(0).Controls.Add(DataGridRow)

End If

End If

 

End Sub

 

Somar total:

 

 

Protected Sub DGGrade_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DGGrade.ItemDataBound

If e.Item.ItemType = ListItemType.AlternatingItem OrElse e.Item.ItemType = ListItemType.Item Then

'Me._total += DirectCast(e.Item.DataItem, System.Data.Common.DbDataRecord).Item("Gra_Creditos")

Me._total += DirectCast(e.Item.DataItem, System.Data.DataRowView).Item("Gra_Creditos")

ElseIf e.Item.ItemType = ListItemType.Footer Then

DirectCast(e.Item.FindControl("lblValorTotal"), Label).Text = "TOTAL DE CRÉDITOS: " & _

Me._total.ToString("N0")

End If

 

End Sub

 

Alguém pode me ajudar?

 

Grato,

 

Ilano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu projeto é web ou windows? Para mover para o sub-fórum correto!!

 

Você teria que criar uma variável que fosse somando no evento ItemDataBound, teria que verificar o momento em que troca de grupo e inseri uma linha manualmente na sua grid.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.