Hace un tiempo e visto que muchos tienen la inquietud de totalizar un DataGridView en el mismo control para que visiblemente se vea bien, ya que las soluciones a este tema muestran el total de la fila en un control o variable. Para esto ya cargado su información al control DataGridView se debe proceder a la habilitación del footer del control en sus propiedades como indica la imagen:
Al cambiar a True se procederá a mostrar una franga inferior en el control, el llamado footer, luego simplemente deben agregar el código correspondiente para realizar la acción, dicho código debe ser agregado en el evento del control llamado RowDataBound: en la imagen siguiente se muestra el evento correspondiente.
Si se presiona dos clic se creara la sección de código correspondiente y por ultimo el código que necesitamos:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if ((e.Row.RowType == DataControlRowType.DataRow))
{
subtotal += Convert.ToDouble(e.Row.Cells[5].Text);
}
if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[4].Text = "Total";
e.Row.Cells[5].Text ="$"+Convert.ToString(subtotal);
}
}
Explico en el primer if solo realizaremos la suma de la fila que necesitamos, recuerden que estos controles se cuentan desde 0 en adelante, en el siguiente if posiciono el texto total en la fila 4 y el total en cifras en la fila 5 con esto podrán totalizar sus DataGridView, espero les sirva.
E tratado de ser muy detallista en la explicacion espero se entienda y le sea de su agrado. El resultado final de lo realizado:
Saludos Comunidad.