Software School Projects | Academic Students Projects | Source Codes | Tablets header
Please use our contact us form or send email to Support@srishtis.com.

Running Total In Gridview Footer in ASP.NET C# VB.NET
In this example we are going to demonstrate how to display running total in footer row or footer template of GridView in ASP.NET using C# and VB.NET. This method works with paging enabled gridview as well.
For demo purpose gridview is populated using sqldatasource having table with columns ID ,Name,Amount we are showing total of amount column is gridview footer.For this we need to sum the the column in RowDataBound Even of Gridiew
Html source of gridview is
<asp:GridView ID="GridView1" runat="server"
                      AutoGenerateColumns="False"
                      DataKeyNames="ID" DataSourceID="SqlDataSource1"
                      OnRowDataBound="GridView1_RowDataBound"
                      ShowFooter="True" AllowPaging="True" PageSize="5"
                      BackColor="#ffffff" BorderColor="AliceBlue"
                      BorderStyle="None" BorderWidth="1px"
                      CellPadding="3"
                      CellSpacing="2" FooterStyle-BackColor="#da821e"
                      FooterStyle-ForeColor="#ffffff"
                      RowStyle-BackColor="#003366"
                      RowStyle-ForeColor="#ffffff"
                      AlternatingRowStyle-BackColor="#da821e">
<Columns>
        <asp:BoundField DataField="ID" HeaderText="ID"
                                 InsertVisible="False" ReadOnly="True"
                                 SortExpression="ID" />
        <asp:BoundField DataField="Name" HeaderText="Name"
                                 InsertVisible="False" ReadOnly="True"
                                 SortExpression="Name" FooterText="Total"/>
        <asp:TemplateField HeaderText="Amount">
        <ItemTemplate>
        <asp:Label ID="lblAmount" runat="server"
                         Text='<%# "$"+Eval("Amount").ToString()%>'>
        </asp:Label>
        </ItemTemplate>
        <FooterTemplate>
        <asp:Label ID="lblTotal" runat="server"></asp:Label>
        </FooterTemplate>
        </asp:TemplateField>
</Columns>
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<HeaderStyle BackColor="#da821e" Font-Bold="True"
ForeColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [ID], [Name], [Amount] FROM [Expenses]">
</asp:SqlDataSource>
Now we need to write code for summing the column in RowdataBound Even of GridView
C# code behind
public partial class _Default : System.Web.UI.Page
{
        decimal grdTotal = 0;
        protected void Page_Load(object sender, EventArgs e)
        {

        }
protected void GridView1_RowDataBound
                             (object sender, GridViewRowEventArgs e)
{
   if(e.Row.RowType == DataControlRowType.DataRow)
   {
      decimal rowTotal = Convert.ToDecimal
                        (DataBinder.Eval(e.Row.DataItem, "Amount"));
      grdTotal = grdTotal + rowTotal;
   }
   if (e.Row.RowType == DataControlRowType.Footer)
   {
      Label lbl = (Label)e.Row.FindControl("lblTotal");
      lbl.Text = grdTotal.ToString("c");
   }
}
}
VB.NET code behind
Public Partial Class _Default
      Inherits System.Web.UI.Page
      Private grdTotal As Decimal = 0
      Protected Sub Page_Load
      (ByVal sender As Object, ByVal e As EventArgs)
End Sub
Protected Sub GridView1_RowDataBound
(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "Amount"))
grdTotal = grdTotal + rowTotal
End If
If e.Row.RowType = DataControlRowType.Footer Then
Dim lbl As Label = DirectCast(e.Row.FindControl
                                        ("lblTotal"), Label)
lbl.Text = grdTotal.ToString("c")
End If
End Sub
End Class
Job or extra money for students

Search Engine Rank of your blog or websites