SPGridview and Collapsed Grouping by Default

This really bugged me when I came across the SPGridView (as you can read in the previous about this control) that when you set the following properties

oGrid.AllowGrouping = true;
oGrid.AllowGroupCollapse = true;

You’d expect that there is another property where you can specify if you want to have it collapsed or expanded when the Grid gets rendered. Unfortunately there isn’t.. but (and that’s why I’m posting ;)) there is dirty way to do it and that’s injecting some javascript after the grid gets rendered. Thanks to the following bit of script gets the job done.

var rows = document.getElementsByTagName('tr');
var numRows = rows.length;
for (var i = 0; i 

To explain it the script.. an event called “ToggleSPGridViewGroup” (which can be found in the spgridview.js in the Layouts folder) is fired when you click on the expand/collapse icon on the grouped item. So I thought “Why not fire all of the links to have it all collapsed by default?” 🙂 I thought this wasn’t possible since it seems REALLY dirty to actually fire events without user interaction. But it actually is possible! Thank god 😉

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.