Ciao, riguardo all'ide adel footer è molto semplice.
Partiamo dal lato client.
1) Al GridView aggiungi lo ShowFooter= (true o false)
2) Il footer non lo puoi inserire in una BoundColumn. Quindi, la tua colonna calcolata deve essere almeno un templateField:
Qui una prova che ho fatto
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="conta" Text= '<%# Eval("ID") %>' runat="server"> // colonna da calcolare
</asp:Label>
</ItemTemplate>
<FooterStyle HorizontalAlign="Center" />//aggiungo lo stile del footer
<FooterTemplate> //aggiungo il footer
<asp:TextBox id="Tot" runat="server" Enabled="false">
</asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
ovviamente questo è solo un esempio, dove la colonna calcolata è una label e il totale del footer è un una TextBox disabilitata: ma puoi usare altri elementi Asp
Lato Server:
3) Registro l'evento miaGridview_RowDataBound....
4) controllo di che tipo è la riga che sto controllando: se è un footer agisco:
Spero ti possa servire.
Ciao,
Paolo