Grouping in ASP.NET Gridview


In this article, I will explain how to implement a grouping and calculate subtotal and a grand total for each group in ASP.Net GridView. To do this I used the RowCreated and RowDatabound events of a GridView. I used an XML file as the data source.


To understand grouping in an ASP.Net GridView.

Using code


Figure 2.jpg

Items are grouped based on the customer name. For each customer, a total has been calculated and at the end a grand total has been calculated.


The main logic is in the RowCreated and RowDataBound events of the GridView. While iterating through all the rows I am catching the customer id and checking the other rows. When the customer id has been changed I am displaying the subtotal and resetting the subtotal. In the same way I am calculating the grand total. To display in a group format I am adding one row in a GridView once the customer id has been changed. In this row I display the subtotal. To display the heading I am adding a new row to the GridView. Please refer to the attachment to see the complete code.


In design I just bound XML data source attributes. Please refer attachment to see complete code.

  <asp:GridView ID="grdViewOrders" CssClass="serh-grid" runat="server" AutoGenerateColumns="False"

                        TabIndex="1" Width="100%" CellPadding="4" ForeColor="Black" GridLines="Vertical"

                        OnRowDataBound="grdViewOrders_RowDataBound" OnRowCommand="grdViewOrders_RowCommand"

                        OnRowCreated="grdViewOrders_RowCreated" BackColor="White" BorderColor="#DEDFDE"

                        BorderStyle="None" BorderWidth="1px">


                            <asp:BoundField DataField="OrderID" HeaderText="OrderID" SortExpression="OrderID">


                            <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" />

                            <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice" />

                            <asp:BoundField DataField="Quantity" HeaderText="Quantity" SortExpression="Quantity" />

                            <asp:BoundField DataField="Discount" HeaderText="Discount" SortExpression="Discount" />

                            <asp:BoundField DataField="Amount" HeaderText="Amount" SortExpression="Amount" />


                        <FooterStyle BackColor="#CCCC99" />

                        <SelectedRowStyle CssClass="grid-sltrow" />

                        <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" BorderStyle="Solid"

                            BorderWidth="1px" BorderColor="Black" />



After reading this article, you have learned:

  1. How to implement grouping in an ASP.Net GridView

  2. How to calculate subtotal and grand total

  3. How to select a full row in a GridView

  4. Retrieving selected row data

Similar Articles