In this example i am going to demonstrate how to Display Running Total In
GridView Footer Row 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
I m showing total of amount column is gridview footer. for this we need to sum the the column in RowDataBound Even of Gridiew
Now
we need to write code for summing the column in RowdataBound Even of
GridView
Hope this helps
Other gridview articles:
Populating dropdown based on the selection of first drop down in DetailsView using FindControl and ItemTemplate
Pouplating Multiple DetailsView based on single GridView using DataKeyNames
Merging GridView Headers to have multiple Headers in GridView
Search Records In GridView And Highlight Results Using AJAX ASP.NET
Insert update Delete record in GridView using SqlDataSource ItemTemplate and EditItemTemplate
For demo purpose gridview is populated using sqldatasource having table with columns ID ,Name,Amount
I m 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>
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
Dim rowTotal As Decimal =
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
Hope this helps
Other gridview articles:
Populating dropdown based on the selection of first drop down in DetailsView using FindControl and ItemTemplate
Pouplating Multiple DetailsView based on single GridView using DataKeyNames
Merging GridView Headers to have multiple Headers in GridView
Search Records In GridView And Highlight Results Using AJAX ASP.NET
Insert update Delete record in GridView using SqlDataSource ItemTemplate and EditItemTemplate

No comments:
Post a Comment