Syncfusion GridGroupingControl supports hierarchical data representation. If the grid displays data of multiple nested data tables, then each data row can have child rows containing data associated with this row. To view the child data, the user needs to expand its parent row and the child table itself. The grid data can also be grouped by one or several columns, so the individual rows are organized into groups. This topic explains how you can expand and collapse rows and groups in the GridGroupingControl from your test scripts:
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 SyncfusionEssGrid object. 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 |
Using the SyncfusionEssGrid.Expand and Collapse Actions
The SyncfusionEssGrid
object provides a number of Expand
and Collapse
actions that can be used to expand and collapse various types of items in the Syncfusion GridGroupingControl:
- The
Expand
andCollapse
actions let you expand and collapse data rows that have child tables. To determine whether a particular data row is expanded, you can use thewExpanded
property. - The
ExpandGroup
andCollapseGroup
actions let you expand and collapse groups. ThewGroupExpanded
property specifies whether a particular group is expanded or collapsed. - The
ExpandChildView
andCollapseChildView
actions let you expand and collapse child tables. To check whether a child table is expanded, use thewChildViewExpanded
property.
The following example illustrates how you can expand and collapse rows, groups and tables in Syncfusion GridGrouping control using the mentioned actions. This example works with the HierarchySample application that comes with the Syncfusion Essential Studio library.
JavaScript, JScript
function Main ()
{
var p, Grid;
// Obtain the grid object
p = Sys.Process("HierarchySample");
p.WinFormsObject("Form1").Maximize();
Grid = p.WinFormsObject("Form1").WinFormsObject("groupingGrid1");
// Collapse items in the last row
Grid.wChildView(7, "Products").CollapseGroup(3);
Grid.CollapseChildView(7, "Products");
Grid.Collapse(7);
// Expand 1st elements in the 1nd row
Grid.Expand(0);
Grid.ExpandChildView(0, "Products");
Grid.wChildView(0, "Products").ExpandGroup(0);
Grid.wChildView(0, "Products").wGroup(0).Expand(0);
Grid.wChildView(0, "Products").wGroup(0).ExpandChildView(0, "OrderDetails");
Grid.wChildView(0, "Products").wGroup(0).wChildView(0, "OrderDetails").ExpandGroup(0);
}
Python
def Main ():
# Obtain the grid object
p = Sys.Process("HierarchySample")
p.WinFormsObject("Form1").Maximize()
Grid = p.WinFormsObject("Form1").WinFormsObject("groupingGrid1")
# Collapse items in the last row
Grid.wChildView(7, "Products").CollapseGroup(3)
Grid.CollapseChildView(7, "Products")
Grid.Collapse(7)
# Expand 1st elements in the 1nd row
Grid.Expand(0)
Grid.ExpandChildView(0, "Products")
Grid.wChildView(0, "Products").ExpandGroup(0)
Grid.wChildView(0, "Products").wGroup(0).Expand(0)
Grid.wChildView(0, "Products").wGroup(0).ExpandChildView(0, "OrderDetails")
Grid.wChildView(0, "Products").wGroup(0).wChildView(0, "OrderDetails").ExpandGroup(0)
VBScript
Sub Main
Dim p, Grid
' Obtain the grid object
Set p = Sys.Process("HierarchySample")
p.WinFormsObject("Form1").Maximize
Set Grid = p.WinFormsObject("Form1").WinFormsObject("groupingGrid1")
' Collapse items in the last row
Grid.wChildView(7, "Products").CollapseGroup(3)
Call Grid.CollapseChildView(7, "Products")
Grid.Collapse(7)
' Expand 1st elements in the 1nd row
Grid.Expand(0)
Call Grid.ExpandChildView(0, "Products")
Grid.wChildView(0, "Products").ExpandGroup(0)
Grid.wChildView(0, "Products").wGroup(0).Expand(0)
Call Grid.wChildView(0, "Products").wGroup(0).ExpandChildView(0, "OrderDetails")
Grid.wChildView(0, "Products").wGroup(0).wChildView(0, "OrderDetails").ExpandGroup(0)
End Sub
DelphiScript
procedure Main;
var p, Grid : OleVariant;
begin
// Obtain the grid object
p := Sys.Process('HierarchySample');
p.WinFormsObject('Form1').Maximize;
Grid := p.WinFormsObject('Form1').WinFormsObject('groupingGrid1');
// Collapse items in the last row
Grid.wChildView[7, 'Products'].CollapseGroup(3);
Grid.CollapseChildView(7, 'Products');
Grid.Collapse(7);
// Expand 1st elements in the 1nd row
Grid.Expand(0);
Grid.ExpandChildView(0, 'Products');
Grid.wChildView[0, 'Products'].ExpandGroup(0);
Grid.wChildView[0, 'Products'].wGroup[0].Expand(0);
Grid.wChildView[0, 'Products'].wGroup[0].ExpandChildView(0, 'OrderDetails');
Grid.wChildView[0, 'Products'].wGroup[0].wChildView[0, 'OrderDetails'].ExpandGroup(0);
end;
C++Script, C#Script
function Main ()
{
var p, Grid;
// Obtain the grid object
p = Sys["Process"]("HierarchySample");
p["WinFormsObject"]("Form1")["Maximize"]();
Grid = p["WinFormsObject"]("Form1")["WinFormsObject"]("groupingGrid1");
// Collapse items in the last row
Grid["wChildView"](7, "Products")["CollapseGroup"](3);
Grid["CollapseChildView"](7, "Products");
Grid["Collapse"](7);
// Expand 1st elements in the 1nd row
Grid["Expand"](0);
Grid["ExpandChildView"](0, "Products");
Grid["wChildView"](0, "Products")["ExpandGroup"](0);
Grid["wChildView"](0, "Products")["wGroup"](0)["Expand"](0);
Grid["wChildView"](0, "Products")["wGroup"](0)["ExpandChildView"](0, "OrderDetails");
Grid["wChildView"](0, "Products")["wGroup"](0)["wChildView"](0, "OrderDetails")["ExpandGroup"](0);
}
Using the GridGroupingControl Internal Methods
To expand and collapse all rows and groups in the grid at once, you can either create special functions that will recursively call the Expand
and Collapse
actions for all grid elements, or you can use the GridGroupingControl internal methods. These methods are listed in the table below:
Method | Description |
---|---|
GridObj.Table.ExpandAllGroups() |
Expands all groups in the grid. |
GridObj.Table.CollapseAllGroups() |
Collapses all groups in the grid. |
GridObj.Table.ExpandAllRecords() |
Expands all data rows, groups and child tables in the grid. |
GridObj.Table.CollapseAllRecords() |
Collapses all data rows, groups and child tables in the grid. |
The following example contains the sample ExpandAll
and CollapseAll
routines that can be used to recursively expand or collapse all rows, groups and child tables in GridGroupingControl. The Grid parameter of these routines specify the GridGroupingControl control under test.
This example demonstrates how you can use these methods to expand/collapse all items in the GridGroupingControl grid.
JavaScript, JScript
function Main ()
{
var p, Grid;
// Obtain the grid object
p = Sys.Process("HierarchySample");
p.WinFormsObject("Form1").Maximize();
Grid = p.WinFormsObject("Form1").WinFormsObject("groupingGrid1");
CollapseAll (Grid);
aqUtils.Delay (1000);
ExpandAll (Grid);
}
function ExpandAll (Grid)
{
Grid.Table.ExpandAllRecords();
}
function CollapseAll (Grid)
{
Grid.Table.CollapseAllRecords();
}
Python
def Main ():
# Obtain the grid object
p = Sys.Process("HierarchySample")
p.WinFormsObject("Form1").Maximize()
Grid = p.WinFormsObject("Form1").WinFormsObject("groupingGrid1")
CollapseAll (Grid)
aqUtils.Delay (1000)
ExpandAll (Grid)
def ExpandAll (Grid):
Grid.Table.ExpandAllRecords()
def CollapseAll (Grid):
Grid.Table.CollapseAllRecords()
VBScript
Sub Main
Dim p, Grid
' Obtain the grid object
Set p = Sys.Process("HierarchySample")
p.WinFormsObject("Form1").Maximize
Set Grid = p.WinFormsObject("Form1").WinFormsObject("groupingGrid1")
CollapseAll Grid
aqUtils.Delay 1000
ExpandAll Grid
End Sub
Sub ExpandAll (Grid)
Grid.Table.ExpandAllRecords
End Sub
Sub CollapseAll (Grid)
Grid.Table.CollapseAllRecords
End Sub
DelphiScript
procedure ExpandAll (Grid);
begin
Grid.Table.ExpandAllRecords;
end;
procedure CollapseAll (Grid);
begin
Grid.Table.CollapseAllRecords;
end;
procedure Main;
var p, Grid : OleVariant;
begin
// Obtain the grid object
p := Sys.Process('HierarchySample');
p.WinFormsObject('Form1').Maximize;
Grid := p.WinFormsObject('Form1').WinFormsObject('groupingGrid1');
CollapseAll (Grid);
aqUtils.Delay (1000);
ExpandAll (Grid);
end;
C++Script, C#Script
function Main ()
{
var p, Grid;
// Obtain the grid object
p = Sys["Process"]("HierarchySample");
p.WinFormsObject("Form1").Maximize();
Grid = p["WinFormsObject"]("Form1")["WinFormsObject"]("groupingGrid1");
CollapseAll (Grid);
aqUtils["Delay"] (1000);
ExpandAll (Grid);
}
function ExpandAll (Grid)
{
Grid["Table"]["ExpandAllRecords"]();
}
function CollapseAll (Grid)
{
Grid["Table"]["CollapseAllRecords"]();
}
See Also
Working With Syncfusion GridGroupingControl
Collapse Action (Grid Controls)
CollapseChildView Action (Specific to SyncfusionEssGrid Controls)
CollapseGroup Action (Grid Controls)
Expand Action (Grid Controls)
ExpandChildView Action (Specific to SyncfusionEssGrid Controls)
ExpandGroup Action (Grid Controls)