Refer the below sample. Don't worry about binding code. You need to bind your code as you are binding with ObjectDataSource. You need to focus on RowDataBound Event. I thik you didn't write the code event in html page for gridviewevent i.e. OnRowDataBound="OnDataBound"
HTML
<div>
<asp:GridView runat="server" ID="GridView1" AutoGenerateColumns="False" ShowFooter="true" OnRowDataBound="OnDataBound">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField>
<FooterTemplate>
<asp:LinkButton ValidationGroup="INSERT" ID="lbInsert" runat="server">Insert</asp:LinkButton>
</FooterTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText=" " ShowDeleteButton="True" ShowEditButton="True"
ShowHeader="True" />
<asp:TemplateField HeaderText="Invoice Company" SortExpression="Invoice_Com">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Invoice_Com") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Invoice_Com") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TxtCom" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Invoice Type" SortExpression="Invoice_Type">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Invoice_Type") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Invoice_Type") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TxtType" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Amount" SortExpression="Invoice_Amount">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Invoice_Amount") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("Invoice_Amount") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TxtAmount" runat="server"></asp:TextBox>
<div style="padding: 0 0 5px 0">
<asp:Label ID="lblAmount" runat="server"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID" SortExpression="Invoice_ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("Invoice_ID") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("Invoice_ID") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TxtID" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="White" Font-Bold="True" ForeColor="Red" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
</div>
Code
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[4]
{
new DataColumn("Invoice_ID", typeof(int)), new DataColumn("Invoice_Com"),
new DataColumn("Invoice_Type"), new DataColumn("Invoice_Amount", typeof(decimal))
});
dt.Rows.Add(1, "Invoice_Com 1", "1", "500");
dt.Rows.Add(2, "Invoice_Com 2", "2", "200");
dt.Rows.Add(3, "Invoice_Com 3", "3", "1500");
dt.Rows.Add(4, "Invoice_Com 4", "4", "789");
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
decimal amount = 0;
protected void OnDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
amount += Convert.ToDecimal((e.Row.FindControl("Label3") as Label).Text);
}
if (e.Row.RowType == DataControlRowType.Footer)
{
(e.Row.FindControl("lblAmount") as Label).Text = amount.ToString();
}
}
Screenshot