Você deve usar os eventos de vinculação de dados para somar os valores. Veja este exemplo e adapte-se às suas necessidades:
private Decimal OrderTotal;
protected void GridView1_DataBinding(object sender, EventArgs e)
{
OrderTotal = 0.0M;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Keep adding the subtotal here
OrderTotal += Subtotal;
}
}
protected void GridView1_DataBound(object sender, EventArgs e)
{
//Set a control with the total sum
LabelOrderTotal.Text = OrderTotal.ToString("C");
}
Basicamente você continua adicionando os valores no
RowDataBound
evento e no DataBound
evento você define um rótulo com a soma total. Alternativamente, você pode iterar sobre sua grade no DataBound
evento e somar tudo.