Ti ho creato un esempio stupido ma che serve a farti capire il concetto.
Nell'aspx:
nel code-behind:
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
dt.AcceptChanges();
DataRow dr = dt.NewRow();
dr[0] = "Matite";
dr[1] = 10.00;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "Penne";
dr[1] = 5.43;
dt.Rows.Add(dr);
dt.AcceptChanges();
griglia.DataSource = dt;
griglia.DataBind();
addSubTotalInGrid(griglia, "B");
}
private void addSubTotalInGrid(GridView gv, string columnName)
{
DataTable dt = null;
try { dt = (DataTable)gv.DataSource; }
catch { dt = null; }
if (dt == null) throw new ArgumentException("Nessuna sorgente dati associata");
double subTotal = 0;
foreach (DataRow dr in dt.Rows) subTotal += Convert.ToDouble(dr[columnName]);
DataRow drNew = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i++)
if (dt.Columns[i].ColumnName == columnName) drNew[i] = subTotal; else drNew[i]="";
dt.Rows.Add(drNew);
dt.AcceptChanges();
gv.DataSource = dt;
gv.DataBind();
}
Se non capisci qualcosa chiedi, ciao.