Articles in this section
Category / Section

How to get the actual row index even after applying the filtering or sorting in WinForms GridGroupingControl?

1 min read

Get row index after filtering or sorting

By default, the rowindex can be fetched from the QuerCellStyleInfo event, but that changes when filtering or sorting is applied.

Solution:

To get the actual rowindex after filtering and sorting, you can fetch it from the class Record. In the Record class, the ID property returns the exact rowindex whether filtering/sorting is applied or not. The following code sample displays how after applying the filter, the actual rowindex can be obtained when one cell is clicked.

C#

//Cellclick event hooked in the constructor.
this.gridGroupingControl1.TableControlCellClick += new GridTableControlCellClickEventHandler(gridGroupingControl1_TableControlCellClick); 
//Cellclick event handled.
void gridGroupingControl1_TableControlCellClick(object sender, GridTableControlCellClickEventArgs e)
{
   GridTableCellStyleInfo style = e.TableControl.GetTableViewStyleInfo(e.Inner.RowIndex, e.Inner.ColIndex);
  GridTableCellStyleInfoIdentity id = style.TableCellIdentity;
  if(id.DisplayElement.Kind== DisplayElementKind.Record)
  { 
     Record rec = id.DisplayElement.GetRecord();
     MessageBox.Show("RowIndex is:" + rec.Id.ToString()); //Real RowIndex
  }
} 

VB

'Cellclick event hooked in constructor.
Me.gridGroupingControl1.TableControlCellClick += New GridTableControlCellClickEventHandler (gridGroupingControl1_TableControlCellClick) 
'Cellclick event handled. 
Private Sub gridGroupingControl1_TableControlCellClick(sender As Object, e As GridTableControlCellClickEventArgs)
   Dim style As GridTableCellStyleInfo = e.TableControl.GetTableViewStyleInfo(e.Inner.RowIndex, e.Inner.ColIndex)
   Dim id As GridTableCellStyleInfoIdentity = style.TableCellIdentity
   If id.DisplayElement.Kind = DisplayElementKind.Record Then
      Dim rec As Record = id.DisplayElement.GetRecord()
      'Real RowIndex.
      MessageBox.Show("RowIndex is:" + rec.Id.ToString())
   End If
End Sub

The following screenshot displays the RowIndex after Filtering or Sorting:

Get row index after filtering or sorting

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied