Поскольку отображается каждая строка (т. Е. Когда вызывается событие RowDataBound) Вам необходимо сохранить промежуточное количество часов для каждой строки, следующий код должен это сделать.(Измененная версия примера с сайта MSDN)
Как только вы попадете в событие RowDataBound для нижнего колонтитула, вы увидите общее количество часов.
' This will keep the running total for the number of hours, and should be placed at the top of your page class
Dim Hours as Integer
Sub detailsGridView_RowDataBound(ByVal sender As Object, _
ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Hours += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "Hours"))
ElseIf e.Row.RowType = DataControlRowType.Footer Then
e.Row.Cells(0).Text = "Totals Hours:"
e.Row.Cells(1).Text = Hours.ToString("c")
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Right
e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Right
e.Row.Font.Bold = True
End If
End Sub