O'Reilly logo

ASP.NET 2.0 Cookbook, 2nd Edition by Geoffrey T. LeBlond, Michael A Kittel

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

2.22. Adding a Totals Row to a GridView

Problem

You have a GridView containing numeric information, and you need to display a total of the data in the last row of the grid.

Solution

Enable the output of the footer in the GridView, accumulate the total for the data in the RowDataBound event handler, and then output the total in the GridView footer.

In the .aspx file, set the ShowFooter attribute of the asp:GridView element to True.

In the code-behind class for the page, use the .NET language of your choice to:

  1. Initialize the totals to 0, and bind the data to the GridView in the normal fashion.

  2. In the RowDataBound event handler, add the values for each data row to the accumulated totals.

  3. In the RowDataBound event handler, set the total values in the footer when the footer is data bound.

Figure 2-25 shows some typical output. Examples 2-63, 2-64 through 2-65 show the .aspx file and code-behind files for an application that produces this output.

GridView with totals row output

Figure 2-25. GridView with totals row output

Discussion

The best way to describe the addition of a totals row to a GridView is by example. In this recipe, you’ll want to create the GridView differently than normal. In the asp:GridView element, set the ShowFooter attribute to True to cause a footer to be output when the control is rendered. Then, you place the totals data in the footer.

 <asp:GridView ID="gvBooks" Runat="Server" AllowPaging="false" AllowSorting="false" ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required