We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

Expanding selected rows in a GDBG

I am attempting to expand rows selected in a hierarchical GDBG. I only want to expand selected rows.

I tried looping thru the GridDataBoundGrid.Selections collection and using the ExpandRowAtIndex API, but if I expand more than one row, a 'Collection Modified' exception is thrown. I am assuming this is because the number of rows changes?

Any ideas on how to tackle this?

Thanks,
Nick

5 Replies

AD Administrator Syncfusion Team January 24, 2007 11:51 PM UTC

Hi Nick,

Here is a code snippet that sshows you How to expand the selected row in a GridDataBoundGrid.

GridRangeInfoList selectedRangeList = new GridRangeInfoList();
this.gridDataBoundGrid1.Model.SelectedRanges.CopyTo(selectedRangeList,0);
foreach(GridRangeInfo info in selectedRangeList )
{
for(int i = info.Top; i<=info.Bottom ; i++)
{
GridBoundRecordState rs = this.gridDataBoundGrid1.Binder.GetRecordStateAtRowIndex(i);
bool haslist = rs.HasChildList;
if(haslist)
{
bool isExpand = this.gridDataBoundGrid1.IsExpandedAtRowIndex(i);
if( !isExpand )
this.gridDataBoundGrid1.ExpandAtRowIndex(i);
}
}
}

Please refer to the attached sample for implementation.
SelectedRowExpand.zip

Best Regards,
Haneef


AD Administrator Syncfusion Team January 24, 2007 11:55 PM UTC

Thanks for the quick response. I'll try this.

Thanks Haneef


Nick


AD Administrator Syncfusion Team January 25, 2007 07:24 PM UTC

This works well, except in the case where only one row is selected. SelectedRanges only seems to be valid if more than 1 row is selected. I haven't been able to find a 'SelectedRow' or 'SelectedCell' member that would work with the above solution in the case of only a single row being selected.

Any ideas?

Thanks,
Nick


AD Administrator Syncfusion Team January 25, 2007 07:44 PM UTC

Never mind, I figured it out. Using:

this.gridDataBoundGrid1.ListBoxSelectionMode = SelectionMode.MultiExtended; //Set the SelectionMode.

did the trick

Thanks!

>This works well, except in the case where only one row is selected. SelectedRanges only seems to be valid if more than 1 row is selected. I haven't been able to find a 'SelectedRow' or 'SelectedCell' member that would work with the above solution in the case of only a single row being selected.

Any ideas?

Thanks,
Nick


AD Administrator Syncfusion Team January 25, 2007 08:23 PM UTC

Hi Nick,

If you are not selecting multiple cells, then SelecteRanges will not return anything. You need to use another method, GetSelectedRanges. See this KB.
http://www.syncfusion.com/support/kb/grid/Default.aspx?ToDo=view&questId=280

Here is a code snippet to expanding selected record using GetSelectedRanges method.

GridRangeInfoList selectedRangeList = new GridRangeInfoList();
this.gridDataBoundGrid1.Model.Selections.GetSelectedRanges(out selectedRangeList,true);
foreach(GridRangeInfo info in selectedRangeList)
{
for(int i = info.Top; i<=info.Bottom ; i++)
{
GridBoundRecordState rs = this.gridDataBoundGrid1.Binder.GetRecordStateAtRowIndex(i);
bool haslist = rs.HasChildList;
if(haslist)
{
bool isExpand = this.gridDataBoundGrid1.IsExpandedAtRowIndex(i);
if( !isExpand )
this.gridDataBoundGrid1.ExpandAtRowIndex(i);
}
}
}

Sample : ModifiedSelectedRowExpand.zip

Best Regards,
Haneef

Loader.
Live Chat Icon For mobile
Up arrow icon