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.
Unfortunately, activation email could not send to your email. Please try again.

Navigating a grid grouping control

Thread ID:





57716 Mar 9,2007 01:17 AM Mar 12,2007 03:47 PM Windows Forms 6
Tags: GridControl
Bill Langlais
Asked On March 9, 2007 01:17 AM


Is there an example that shows how to navigating programatically to a specific row in a grid grouping control, expanding to the rows level?



Administrator [Syncfusion]
Replied On March 9, 2007 10:17 AM

Hi Bill,

Here is a code snippet that shows you 'How to navigate a specific row and expand it in a grid ?"

Element el = this.grid.TableControl.Table.DisplayElements[ RowIndex ];
if( el.Kind == DisplayElementKind.Record)
GridRecordRow rec = el as GridRecordRow;
if( rec.ParentRecord != null)
if( rec.ParentRecord.NestedTables.Count > 0 )
rec.ParentRecord.IsExpanded = true;

Best regards,

Bill Langlais
Replied On March 11, 2007 02:18 AM

I tried the code you sent but it is not working as expeced. Here is my code (in C++).

GridTable *gt = MainForm->GridSkiResults->GetTableControl(SegmentDataTable)->Table;
Element *el = gt->DisplayElements->Item[RowIndex];

if(el->Kind == DisplayElementKind::Record) {
GridRecordRow *rec = dynamic_cast(el);
if(rec->ParentRecord != NULL) {
if(rec->ParentRecord->NestedTables->Count > 0) {
rec->ParentRecord->IsExpanded = true;

When this code executes:
el->Kind = Record
rec = NULL
el->TableLevel = 0
el->ParentRecord = NULL

I am not sure why TableLevel = 0 since this table is 5 levels deep in the nesting.

Bill Langlais
Replied On March 12, 2007 02:46 PM

Here is the code I use to locate the grid record

RawTrackData::GetGridRecord(long PointIndex)
int idx;
Record *Rec;

if(PointIndex != -1) {
UnsortedRecordsCollection *Records = dynamic_cast(MainFormObject)->GridSkiResults->GetTable(SegmentDataTable)->UnsortedRecords;

for(long RecIndex = 0 ; RecIndex < Records->Count ; ++RecIndex) {
Rec = Records->Item[RecIndex];
idx = Convert::ToInt32(Rec->GetValue(CoordinatesColumn));

if(Points[idx]->time.Ticks == Points[PointIndex]->time.Ticks) {
int x = Records->IndexOf(Rec);


Administrator [Syncfusion]
Replied On March 12, 2007 03:15 PM

Hi Bill,

We need more information to analyze your problem. What version of the grid and .Net framework are you using? Also what are the events you are handling?

We were not able to reproduce the issue in Essential version 4.4 with .Net 1.1 &2.0 . Is it possible for you to upload us a sample or modify the browser sample to reproduce the issue here? This will help us to analyse the issue further.

Best Regards,

Bill Langlais
Replied On March 12, 2007 03:45 PM


The only way I can think of is to upload the application which is quite large. Is there a private location (that other users cannot get to) that I can upload it to?

Bill Langlais
Replied On March 12, 2007 03:47 PM

I am using Syncfusion Essential Grid version

In Visual Studio 2003 with .net 1.1


This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.