When working with Syncfusion GridGroupingControl, you may need to simulate the selection of multiple grid rows. You can then perform various operations over the selected rows, for example, obtain their cell values, copy their data to the clipboard, and so on. Note that multi-selection in GridGroupingControl is only possible if the grid’s Table.TableOptions.ListBoxSelectionMode is “MultiSimple” or “MultiExtended”. If you are not sure whether the tested grid control supports multi-selection, ask the tested application’s developer. You can also check this yourself by trying to select multiple grid rows with Ctrl- or Shift-clicks.
The following sections describe approaches that can be used to select multiple rows in the GridGroupingControl:
|  | To perform these actions, TestComplete should have access to internal objects, properties and methods of the GridGroupingControl object. For this purpose, the .NET Application Support and Syncfusion Systems Control Support plugins must be installed and enabled. The latter lets you work with the GridGroupingControl controls using methods and properties of the SyncfusionEssGridobject. Without this plugin, you will not be able to work with  controls using their internal methods and properties.When testing Syncfusion GridGroupingControl controls, use specific methods and properties of the corresponding  | 
Simulating Selections With Mouse
Normally, the users can select multiple rows in the GridGroupingControl by pressing Ctrl or Shift while selecting the rows. Holding Ctrl while selecting the row will add it to the current selection, and holding Shift will extend selection to the selected row.
To simulate a click on a row indicator, use the ClickRowIndicator action of the SyncEssGrid object. The parameters of these actions specify the row to be clicked, and also whether the Shift, Ctrl, Alt or combination of these keys should be pressed during the click.
Below is an example that illustrates how you can use these actions to select multiple rows and a range of rows in the grid.
Example
JavaScript, JScript
function Main ()
{
  var p, Grid, RowIndexes;
  // Obtain the grid object
  p = Sys.Process("MultipleRecordSelection");
  p.WinFormsObject("Form1").Maximize();
  Grid = p.WinFormsObject("Form1").WinFormsObject("gridGroupingControl1");
  // Select rows 7-21 in the root table
  SelectRange (Grid, 7, 21);
  aqUtils.Delay (1000);
  // Select multiple rows in a nested table
  Grid.Expand(4);
  RowIndexes = new Array (1, 2, 4, 7, 14);
  SelectRows (Grid.wChildView(4,0), RowIndexes);
}
// Selects the specified range of rows
function SelectRange (View, StartRowIndex, EndRowIndex)
{
  // Select the first row of the range
  View.ClickRowIndicator (StartRowIndex);
  // Extend the selection
  View.ClickRowIndicator (EndRowIndex, skShift);
}
// Selects the specified rows
function SelectRows (View, RowIndexes)
{
  // Select the first of the specified rows
  View.ClickRowIndicator (RowIndexes[0]);
  // Add other rows to the selection
  for (var i=1; i<RowIndexes.length; i++)
    View.ClickRowindicator (RowIndexes[i], skCtrl);
}
Python
def Main ():
  # Obtain the grid object
  p = Sys.Process("MultipleRecordSelection")
  p.WinFormsObject("Form1").Maximize()
  Grid = p.WinFormsObject("Form1").WinFormsObject("gridGroupingControl1")
  # Select rows 7-21 in the root table
  SelectRange (Grid, 7, 21)
  aqUtils.Delay (1000)
  # Select multiple rows in a nested table
  Grid.Expand(4)
  RowIndexes = list(1, 2, 4, 7, 14)
  SelectRows (Grid.wChildView[4,0], RowIndexes)
# Selects the specified range of rows
def SelectRange (View, StartRowIndex, EndRowIndex):
  # Select the first row of the range
  View.ClickRowIndicator (StartRowIndex)
  # Extend the selection
  View.ClickRowIndicator (EndRowIndex, skShift)
# Selects the specified rows
def SelectRows (View, RowIndexes):
  # Select the first of the specified rows
  View.ClickRowIndicator (RowIndexes[0])
  # Add other rows to the selection
  for i in range(1, RowIndexes.length-1):
    View.ClickRowindicator (RowIndexes[i], skCtrl)VBScript
Sub Main
  Dim p, Grid, RowIndexes
  ' Obtain the grid object
  Set p = Sys.Process("MultipleRecordSelection")
  p.WinFormsObject("Form1").Maximize
  Set Grid = p.WinFormsObject("Form1").WinFormsObject("gridGroupingControl1")
  ' Select rows 7-21 in the root table
  Call SelectRange (Grid, 7, 21)
  aqUtils.Delay (1000)
  ' Select multiple rows in a nested table
  Grid.Expand(4)
  RowIndexes =  Array (1, 2, 4, 7, 14)
  Call SelectRows (Grid.wChildView(4,0), RowIndexes)
End Sub
' Selects the specified range of rows
Sub SelectRange (View, StartRowIndex, EndRowIndex)
  ' Select the first row of the range
  View.ClickRowIndicator (StartRowIndex)
  ' Extend the selection
  Call View.ClickRowIndicator (EndRowIndex, skShift)
End Sub
' Selects the specified rows
Sub SelectRows (View, RowIndexes)
  ' Select the first of the specified rows
  View.ClickRowIndicator (RowIndexes(0))
  ' Add other rows to the selection
  For i=1 To UBound(RowIndexes)
    Call View.ClickRowindicator (RowIndexes(i), skCtrl)
  Next
End Sub
DelphiScript
procedure SelectRange (View, StartRowIndex, EndRowIndex); forward;
procedure SelectRows (View, RowIndexes); forward;
procedure Main;
var p, Grid, RowIndexes : OleVariant;
begin
  // Obtain the grid object
  p := Sys.Process('MultipleRecordSelection');
  p.WinFormsObject('Form1').Maximize;
  Grid := p.WinFormsObject('Form1').WinFormsObject('gridGroupingControl1');
  // Select rows 7-21 in the root table
  SelectRange (Grid, 7, 21);
  aqUtils.Delay (1000);
  // Select multiple rows in a nested table
  Grid.Expand(4);
  RowIndexes := CreateVariantArray (0, 4);
  RowIndexes[0] := 1;  RowIndexes[1] := 2;
  RowIndexes[2] := 4;  RowIndexes[3] := 7;
  RowIndexes[3] := 14;
  SelectRows (Grid.wChildView[4,0], RowIndexes);
end;
// Selects the specified range of rows
procedure SelectRange (View, StartRowIndex, EndRowIndex);
begin
  // Select the first row of the range
  View.ClickRowIndicator (StartRowIndex);
  // Extend the selection
  View.ClickRowIndicator (EndRowIndex, skShift);
end;
// Selects the specified rows
procedure SelectRows (View, RowIndexes);
var i : OleVariant;
begin
  // Select the first of the specified rows
  View.ClickRowIndicator (RowIndexes[0]);
  // Add other rows to the selection
  for i := 1 to VarArrayHighBound(RowIndexes, 1)-1 do
    View.ClickRowindicator (RowIndexes[i], skCtrl);
end;
C++Script, C#Script
function Main ()
{
  var p, Grid, RowIndexes;
  // Obtain the grid object
  p = Sys["Process"]("MultipleRecordSelection");
  p["WinFormsObject"]("Form1")["Maximize"]();
  Grid = p["WinFormsObject"]("Form1")["WinFormsObject"]("gridGroupingControl1");
  // Select rows 7-21 in the root table
  SelectRange (Grid, 7, 21);
  aqUtils["Delay"] (1000);
  // Select multiple rows in a nested table
  Grid["Expand"](4);
  RowIndexes = new Array (1, 2, 4, 7, 14);
  SelectRows (Grid["wChildView"](4,0), RowIndexes);
}
// Selects the specified range of rows
function SelectRange (View, StartRowIndex, EndRowIndex)
{
  // Select the first row of the range
  View["ClickRowIndicator"](StartRowIndex);
  // Extend the selection
  View["ClickRowIndicator"](EndRowIndex, skShift);
}
// Selects the specified rows
function SelectRows (View, RowIndexes)
{
  // Select the first of the specified rows
  View["ClickRowIndicator"](RowIndexes[0]);
  // Add other rows to the selection
  for (var i=1; i<RowIndexes["length"]; i++)
    View["ClickRowindicator"](RowIndexes[i], skCtrl);
}
Using GridGroupingControl Internal Methods
The GridGroupingControl lets you programmatically manage the selected rows in each grid table; the root table as well as in tested tables. You can obtain the collection of records selected in a grid table using the following statements:
GridObj.Table.SelectedRecords
GridObj.GetTable(TableName).SelectedRecords
The first statement lets you get the collection of data rows selected in the grid’s root table, and the second one returns the records selected in a nested table (the table name is specified by the TableName parameter).
To select and unselect grid rows, use the following methods of the obtained collection:
- Add (RecordObj)-- Adds a row to the selection. The RecordObj parameter specifies the object corresponding to the desired row. You can obtain such an object using the- GetRecordroutine from the Selecting Cells in Syncfusion GridGroupingControl topic.
- Remove (RecordObj)-- Unselects the specified row.
- Clear-- Unselects all rows in a table.
The following example demonstrates how you can select and unselect rows in the GridGroupingControl.
Example
JavaScript
function Main ()
{
  var p, Grid, RowIndexes;
  // Obtain the grid object
  p = Sys.Process("MultipleRecordSelection");
  p.WinFormsObject("Form1").Maximize();
  Grid = p.WinFormsObject("Form1").WinFormsObject("gridGroupingControl1");
  // Collapse all rows in the grid
  Grid.Table.CollapseAllRecords();
  // Select rows 10-20
  SelectRange (Grid, null, 10, 20);
  aqUtils.Delay (1000);
  // Clear selection
  ClearSelection (Grid, null);
  aqUtils.Delay (1000);
  // Select multiple rows
  RowIndexes = new Array (10, 12, 15, 17, 23);
  SelectRows (Grid, null, RowIndexes);
}
function SelectRange (Grid, TableOrGroup, StartRowIndex, EndRowIndex)
{
  var SelectedRecords, Rec;
  // Get the selected records in the specified table or group
  if (strictEqual(TableOrGroup, null))
    SelectedRecords = Grid.Table.SelectedRecords
  else
    SelectedRecords = Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords;
  // Clear the previous selection
  SelectedRecords.Clear();
  // Select the specified range of rows
  for (let i=StartRowIndex; i<=EndRowIndex; i++)
  {
    Rec = GetRecord (Grid, TableOrGroup, i);
    SelectedRecords.Add (Rec);
  }
}
function SelectRows (Grid, TableOrGroup, RecIndexes)
{
  var SelectedRecords, Rec;
  // Get the selected records in the specified table or group
  if (strictEqual(TableOrGroup, null))
    SelectedRecords = Grid.Table.SelectedRecords
  else
    SelectedRecords = Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords;
  // Clear the previous selection
  SelectedRecords.Clear();
  // Select the specified rows
  for (let i=0; i<RecIndexes.length; i++)
  {
    Rec = GetRecord (Grid, TableOrGroup, RecIndexes[i]);
    SelectedRecords.Add (Rec);
  }
}
function ClearSelection (Grid, TableOrGroup)
{
  if (strictEqual(TableOrGroup, null))
    Grid.Table.SelectedRecords.Clear()
  else
    Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords.Clear();
}
function GetRecord (Grid, TableOrGroup, Recindex)
{
  // Get the root table if no table is specified
  if (strictEqual(TableOrGroup, null))
    TableOrGroup = Grid.Table.TopLevelGroup;
  return TableOrGroup.Records.Item_2(Recindex);
}
JScript
function Main ()
{
  var p, Grid, RowIndexes;
  // Obtain the grid object
  p = Sys.Process("MultipleRecordSelection");
  p.WinFormsObject("Form1").Maximize();
  Grid = p.WinFormsObject("Form1").WinFormsObject("gridGroupingControl1");
  // Collapse all rows in the grid
  Grid.Table.CollapseAllRecords();
  // Select rows 10-20
  SelectRange (Grid, null, 10, 20);
  aqUtils.Delay (1000);
  // Clear selection
  ClearSelection (Grid, null);
  aqUtils.Delay (1000);
  // Select multiple rows
  RowIndexes = new Array (10, 12, 15, 17, 23);
  SelectRows (Grid, null, RowIndexes);
}
function SelectRange (Grid, TableOrGroup, StartRowIndex, EndRowIndex)
{
  var SelectedRecords, Rec, i;
  // Get the selected records in the specified table or group
  if (TableOrGroup == null)
    SelectedRecords = Grid.Table.SelectedRecords
  else
    SelectedRecords = Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords;
  // Clear the previous selection
  SelectedRecords.Clear();
  // Select the specified range of rows
  for (i=StartRowIndex; i<=EndRowIndex; i++)
  {
    Rec = GetRecord (Grid, TableOrGroup, i);
    SelectedRecords.Add (Rec);
  }
}
function SelectRows (Grid, TableOrGroup, RecIndexes)
{
  var SelectedRecords, Rec, i;
  // Get the selected records in the specified table or group
  if (TableOrGroup == null)
    SelectedRecords = Grid.Table.SelectedRecords
  else
    SelectedRecords = Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords;
  // Clear the previous selection
  SelectedRecords.Clear();
  // Select the specified rows
  for (i=0; i<RecIndexes.length; i++)
  {
    Rec = GetRecord (Grid, TableOrGroup, RecIndexes[i]);
    SelectedRecords.Add (Rec);
  }
}
function ClearSelection (Grid, TableOrGroup)
{
  if (TableOrGroup == null)
    Grid.Table.SelectedRecords.Clear()
  else
    Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords.Clear();
}
function GetRecord (Grid, TableOrGroup, Recindex)
{
  // Get the root table if no table is specified
  if (TableOrGroup == null)
    TableOrGroup = Grid.Table.TopLevelGroup;
  return TableOrGroup.Records.Item_2(Recindex);
}
Python
def Main ():
  # Obtain the grid object
  p = Sys.Process("MultipleRecordSelection")
  p.WinFormsObject("Form1").Maximize()
  Grid = p.WinFormsObject("Form1").WinFormsObject("gridGroupingControl1")
  # Collapse all rows in the grid
  Grid.Table.CollapseAllRecords()
  # Select rows 10-20
  SelectRange (Grid, None, 10, 20)
  aqUtils.Delay (1000)
  # Clear selection
  ClearSelection (Grid, None)
  aqUtils.Delay (1000)
  # Select multiple rows
  RowIndexes = list(10, 12, 15, 17, 23)
  SelectRows (Grid, None, RowIndexes)
def SelectRange (Grid, TableOrGroup, StartRowIndex, EndRowIndex):
  # Get the selected records in the specified table or group
  if (TableOrGroup == None):
    SelectedRecords = Grid.Table.SelectedRecords
  else:
    SelectedRecords = Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords
  # Clear the previous selection
  SelectedRecords.Clear()
  # Select the specified range of rows
  for i in range(StartRowIndex, EndRowIndex):
    Rec = GetRecord (Grid, TableOrGroup, i)
    SelectedRecords.Add (Rec)
def SelectRows (Grid, TableOrGroup, RecIndexes):
  # Get the selected records in the specified table or group
  if (TableOrGroup == None):
    SelectedRecords = Grid.Table.SelectedRecords
  else:
    SelectedRecords = Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords
  # Clear the previous selection
  SelectedRecords.Clear()
  # Select the specified rows
  for i in range(0, RecIndexes.length-1):
    Rec = GetRecord (Grid, TableOrGroup, RecIndexes[i])
    SelectedRecords.Add (Rec)
def ClearSelection (Grid, TableOrGroup):
  if (TableOrGroup == None):
    Grid.Table.SelectedRecords.Clear()
  else:
    Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords.Clear()
def GetRecord (Grid, TableOrGroup, Recindex):
  # Get the root table if no table is specified
  if (TableOrGroup == None):
    TableOrGroup = Grid.Table.TopLevelGroup
  return TableOrGroup.Records.Item_2(Recindex)VBScript
Sub Main
  Dim p, Grid, RowIndexes
  ' Obtain the grid object
  Set p = Sys.Process("MultipleRecordSelection")
  p.WinFormsObject("Form1").Maximize
  Set Grid = p.WinFormsObject("Form1").WinFormsObject("gridGroupingControl1")
  ' Collapse all rows
  Grid.Table.CollapseAllRecords
  ' Select rows 10-20
  Call SelectRange (Grid, Nothing, 10, 20)
  Call aqUtils.Delay (1000)
  ' Clear selection
  Call ClearSelection (Grid, Nothing)
  Call aqUtils.Delay (1000)
  ' Select multiple rows
  RowIndexes = Array (10, 12, 15, 17, 23)
  Call SelectRows (Grid, Nothing, RowIndexes)
End Sub
Sub SelectRange (Grid, TableOrGroup, StartRowIndex, EndRowIndex)
  Dim SelectedRecords, Rec, i
  ' Get the selected records in the specified table or group
  If TableOrGroup Is Nothing Then
    Set SelectedRecords = Grid.Table.SelectedRecords
  Else
    Set SelectedRecords = Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords
  End If
  ' Clear the previous selection
  SelectedRecords.Clear
  ' Select the specified range of rows
  For i = StartRowIndex To EndRowIndex
    Set Rec = GetRecord (Grid, TableOrGroup, i)
    Call SelectedRecords.Add (Rec)
  Next
End Sub
Sub SelectRows (Grid, TableOrGroup, RecIndexes)
  Dim SelectedRecords, Rec, i
  ' Get the selected records in the specified table or group
  If TableOrGroup Is Nothing Then
    Set SelectedRecords = Grid.Table.SelectedRecords
  Else
    Set SelectedRecords = Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords
  End If
  ' Clear the previous selection
  SelectedRecords.Clear
  ' Select the specified rows
  For i = LBound(RecIndexes) To UBound(RecIndexes)
    Set Rec = GetRecord (Grid, TableOrGroup, RecIndexes(i))
    Call SelectedRecords.Add (Rec)
  Next
End Sub
Sub ClearSelection (Grid, TableOrGroup)
  If TableOrGroup Is Nothing Then
    Grid.Table.SelectedRecords.Clear
  Else
    Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords.Clear
  End If
End Sub
Function GetRecord (Grid, TableOrGroup, RecordIndex)
  ' Get the root table if no table is specified
  If TableOrGroup Is Nothing Then
    Set TableOrGroup = Grid.Table.TopLevelGroup
  End If
  Set GetRecord = TableOrGroup.Records.Item_2(RecordIndex)
End Function
DelphiScript
procedure SelectRange (Grid, TableOrGroup, StartRowIndex, EndRowIndex); forward;
procedure SelectRows (Grid, TableOrGroup, RecIndexes); forward;
procedure ClearSelection (Grid, TableOrGroup); forward;
function GetRecord (Grid, TableOrGroup, RecordIndex); forward;
procedure Main;
var p, Grid, RowIndexes : OleVariant;
begin
  // Obtain the grid object
  p := Sys.Process('MultipleRecordSelection');
  p.WinFormsObject('Form1').Maximize;
  Grid := p.WinFormsObject('Form1').WinFormsObject('gridGroupingControl1');
  // Clear selection
  Grid.Table.CollapseAllRecords;
  // Select rows 10-20
  SelectRange (Grid, nil, 10, 20);
  aqUtils.Delay (1000);
  // Clear selection
  ClearSelection (Grid, nil);
  aqUtils.Delay (1000);
  // Select multiple rows
  RowIndexes := CreateVariantArray (0, 4);
  RowIndexes[0] := 10;    RowIndexes[1] := 12;
  RowIndexes[2] := 15;    RowIndexes[3] := 17;
  RowIndexes[4] := 23;
  SelectRows (Grid, nil, RowIndexes);
end;
procedure SelectRange (Grid, TableOrGroup, StartRowIndex, EndRowIndex);
var SelectedRecords, Rec, i : OleVariant;
begin
  // Get the selected records in the specified table or group
  if TableOrGroup = nil then
    SelectedRecords := Grid.Table.SelectedRecords
  else
    SelectedRecords := Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords;
  // Clear the previous selection
  SelectedRecords.Clear;
  // Select the specified range of rows
  for i:=StartRowIndex to EndRowIndex do
  begin
    Rec := GetRecord (Grid, TableOrGroup, i);
    SelectedRecords.Add (Rec);
  end
end;
procedure SelectRows (Grid, TableOrGroup, RecIndexes);
var SelectedRecords, Rec, i : OleVariant;
begin
  // Get the selected records in the specified table or group
  if TableOrGroup = nil then
    SelectedRecords := Grid.Table.SelectedRecords
  else
    SelectedRecords := Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords;
  // Clear the previous selection
  SelectedRecords.Clear;
  // Select the specified rows
  for i:=VarArrayLowBound(RecIndexes, 1) to VarArrayHighBound(RecIndexes, 1) do
  begin
    Rec := GetRecord (Grid, TableOrGroup, RecIndexes[i]);
    SelectedRecords.Add (Rec);
  end
end;
procedure ClearSelection (Grid, TableOrGroup);
begin
  if TableOrGroup = nil then
    Grid.Table.SelectedRecords.Clear
  else
    Grid.GetTable(TableOrGroup.ParentTableDescriptor.Name).SelectedRecords.Clear;
end;
function GetRecord (Grid, TableOrGroup, RecordIndex);
begin
  // Get the root table if no table is specified
  if TableOrGroup = nil then
    TableOrGroup := Grid.Table.TopLevelGroup;
  Result := TableOrGroup.Records.Item_2[RecordIndex];
end;
C++Script, C#Script
function Main ()
{
  var p, Grid, RowIndexes;
  // Obtain the grid object
  p = Sys["Process"]("MultipleRecordSelection");
  p["WinFormsObject"]("Form1")["Maximize"]();
  Grid = p["WinFormsObject"]("Form1")["WinFormsObject"]("gridGroupingControl1");
  // Collapse all rows in the grid
  Grid["Table"]["CollapseAllRecords"]();
  // Select rows 10-20
  SelectRange (Grid, null, 10, 20);
  aqUtils["Delay"] (1000);
  // Clear selection
  ClearSelection (Grid, null);
  aqUtils["Delay"] (1000);
  // Select multiple rows
  RowIndexes = new Array (10, 12, 15, 17, 23);
  SelectRows (Grid, null, RowIndexes);
}
function SelectRange (Grid, TableOrGroup, StartRowIndex, EndRowIndex)
{
  var SelectedRecords, Rec, i;
  // Get the selected records in the specified table or group
  if (TableOrGroup == null)
    SelectedRecords = Grid["Table"]["SelectedRecords"]
  else
    SelectedRecords = Grid["GetTable"](TableOrGroup["ParentTableDescriptor"]["Name"])["SelectedRecords"];
  // Clear the previous selection
  SelectedRecords["Clear"]();
  // Select the specified range of rows
  for (i=StartRowIndex; i<=EndRowIndex; i++)
  {
    Rec = GetRecord (Grid, TableOrGroup, i);
    SelectedRecords["Add"](Rec);
  }
}
function SelectRows (Grid, TableOrGroup, RecIndexes)
{
  var SelectedRecords, Rec, i;
  // Get the selected records in the specified table or group
  if (TableOrGroup == null)
    SelectedRecords = Grid["Table"]["SelectedRecords"]
  else
    SelectedRecords = Grid["GetTable"](TableOrGroup["ParentTableDescriptor"]["Name"])["SelectedRecords"];
  // Clear the previous selection
  SelectedRecords["Clear"]();
  // Select the specified rows
  for (i=0; i<RecIndexes["length"]; i++)
  {
    Rec = GetRecord (Grid, TableOrGroup, RecIndexes[i]);
    SelectedRecords["Add"](Rec);
  }
}
function ClearSelection (Grid, TableOrGroup)
{
  if (TableOrGroup == null)
    Grid["Table"]["SelectedRecords"]["Clear"]()
  else
    Grid["GetTable"](TableOrGroup["ParentTableDescriptor"]["Name"])["SelectedRecords"]["Clear"]();
}
function GetRecord (Grid, TableOrGroup, Recindex)
{
  // Get the root table if no table is specified
  if (TableOrGroup == null)
    TableOrGroup = Grid["Table"]["TopLevelGroup"];
  return TableOrGroup["Records"]["Item_2"](Recindex);
}
See Also
Working With Syncfusion GridGroupingControl
ClickRowIndicator Action (Grid Controls)
Obtaining Selected Rows in Syncfusion GridGroupingControl
Iterating Through Rows in Syncfusion GridGroupingControl
Selecting Cells in Syncfusion GridGroupingControl

 Simulating Selections With Mouse
Simulating Selections With Mouse View description
View description