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