Author's website: http://www.sqlnetframework.com
Introduction - Google Analytics ASP.NET Grid Column Sorting
In the following article, you will learn how you can improve the column sorting of the ASP.NET GridView to give the user a better visual experience. The Google Analytics ASP.NET Grid column sorting will indicate the sorting order direction (ascending or descending) and will highlight the GridView column used to make the sorting.
Google Analytics ASP.NET Grid Serie
The Google Analytics ASP.NET Grid Serie will show you how to create an ASP.NET Grid that recreates the appearance and behavior of the Grid displayed in the Google Analytics web site.
- Part 1: Extending ASP.NET
DataPager: Creating a Google Analytics Data Pager
- Part 2: Google Analytics ASP.NET Grid Counter: Enumerate the row items in an ASP.NET Grid
- Part 3: Google Analytics ASP.NET Grid Sort Column: Enhance your
GridView with a sorting order indicator (ascending, descending) and highlight the GridView column used for sorting
Improving ASP.NET GridView Sorting Capabilities
Many of us have used the ASP.NET GridView webcontrol to display information. One of the features most used of the GridView webcontrol is GridView sorting. The GridView sorting allows us to sort the information in the GridView using the column name displayed at the top of the GridView.
Default GridView Sorting Capability
If you are working with the GridView webcontrol and you want to enable the GridView sorting capability, you need to set to true the GridView’s AllowSorting property.
Now that the GridView sorting feature is enabled, the GridView webcontrol will display a link for each column header. When the user clicks the link in the column header, the information displayed in the GridView will be sorted using the SortExpression defined in the GridView column.
Default GridView Sorting Direction
The first time you click a column header, the GridView sorting direction is ascending (A, B, C, etc.), the second time you click the same column header the GridView sorting direction changes to descending (C, B, A, etc.).
Implementing GridView Sorting like in Google Analytics
The Google Analytics Grid has features that seem interesting to be implemented in any ASP.NET project using the GridView to display and sort information. The first GridView sorting feature that we will implement will be to display an image to notify the user the GridView sorting direction: ascending or descending. The second feature will be to highlight the header and each row of the selected GridView column to make it easy for the user to know which GridView column was used for sorting.
Using an Image to Display the GridView Sorting Direction
When the user clicks a GridView column header for sorting, an image will be displayed in the GridView column header to notify the user the GridView sorting direction. To display the image, we are going to check whether the current column header was clicked for sorting, if so, we are going to check the GridView sorting direction: ascending or descending. Depending on whether the GridView column header was clicked or not, we are going to select the CSS-style to apply.
Highlighting the GridView Sorting Column
When the user clicks a GridView column header for sorting, all the GridView columns will be highlighted, including the column header and the rows. To highlight a row item, we will check whether the row item is under the GridView column header clicked for sorting.
How to Use the New GridView Sorting Capabilities in my ASP.NET Web Projects?
You only need to add a GoogleAnalyticsGridViewColumnSortField within the Columns collection of the GridView webcontrol.
The SortedColumnCssClass and ColumnCssClass properties specifies the CSS-style to be applied to a GridView column when the GridView column is clicked for sorting and when the GridView column is at a normal state without being selected, respectively. You need to specify a value at least to the SortedColumnCssClass property. Finally you need to create a style sheet to create the style items used for the rendering of the GridView.
Style Used for the Sorted GridView Column
If you assign the value "googleAnalyticsSortedColumn" to the SortedColumnCssClass property of the GoogleAnalyticsGridViewColumnSortField class, then you need to create the style items displayed below:
Style Used for the Normal GridView Column
If you assign the value "googleAnalyticsColumn" to the ColumnCssClass property of the GoogleAnalyticsGridViewColumnSortField class, then you need to create the style items displayed below:
Conclusion
Now with just including the GoogleAnalyticsGridViewColumnSortField item to the Columns collection of the GridView webcontrol, you can have a better sorting functionality for the GridView. To modify the GridView appearance, you only need to edit the CSS-style sheet file associated with the GridView webcontrol. Download the Google Analytics ASP.NET Grid Sort Column code to see how easy is to use the new GridView sorting features.
History
- 12th May, 2008: Initial post