Asp.Net Tutorial

# SubTotal and GrandTotal in GridView

In the following lesson, you can learn how to implement a grouping and calculate subtotal for each group and GrandTotal for all groups in ASP.Net GridView.

Database

In reporting and analysis, subtotals and grand totals are essential elements that provide comprehensive insights into aggregated data. A subtotal represents the sum of values within a subgroup, typically grouped by a specific criterion, while a grand total encompasses the sum of all calculations within the entire report.

## Calculate the GrandTotal

As of now, we are serving a selective query from the STOR table of PUBS database to find out the product quantity subtotal in the store-wise manner. Achieving results of this sort is possible through combining the data provided per store into their groups using the right SQL queries, generating final subtotals by store quantity.

Additionally, we aim to calculate the GrandTotal, which entails summing up the quantities from all stores in the report. This involves performing calculations on the entire dataset retrieved from the STOR table, disregarding any specific subgrouping criteria.

For displaying quantity on each row we insert an ItemTemplate for quantity field.

For displaying GrandTotal at the footer, we insert a FooterTemplate at thebottom of the GridView.

And for displaying subtotal , the program dynamically add a new row after each group in the Gridview.

Default.aspx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowFooter="true" onrowdatabound="GridView1_RowDataBound" onrowcreated="GridView1_RowCreated"> <Columns> <asp:BoundField DataField="stor_id" HeaderText="stor_id" /> <asp:BoundField DataField="ord_num" HeaderText="ord_num" /> <asp:BoundField DataField="title_id" HeaderText="title_id" /> <asp:TemplateField HeaderText="Quantity" ItemStyle-HorizontalAlign="Right"> <ItemTemplate> <asp:Label ID="lblqty" runat="server" Text='<%# Eval("qty") %>' /> </ItemTemplate> <FooterTemplate> <div style="text-align: right;"> <asp:Label ID="lblTotalqty" runat="server" Font-Bold=true /> </div> </FooterTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form> </body> </html>
C# Source Code