Category / Section
How to hide the ChildTable that does not have any record to show up in the WinForms GridGroupingControl?
2 mins read
Hide the child table
The QueryCellStyleInfo event of
the WinForms GridGroupingControl can be handled to hide the ChildTable that
does not have any record to show up. The idea is to change the CellType of
the RecordPlusMinusCell to static, so that
the plus or minus button disappears, and you cannot expand the
empty ChildTable.
private void gridGroupingControl1_QueryCellStyleInfo(object sender, Syncfusion.Windows.Forms.Grid.Grouping.GridTableCellStyleInfoEventArgs e)
{
if(e.TableCellIdentity.TableCellType == GridTableCellType.RecordPlusMinusCell)
{
Record r = e.TableCellIdentity.DisplayElement.ParentRecord as Record;
if(r != null && r.NestedTables.Count > 0 && r.NestedTables[0].ChildTable.FilteredChildNodeCount == 0)
{
e.Style.CellType = "Static";
}
}
}Private Sub gridGroupingControl1_QueryCellStyleInfo(ByVal sender As Object, ByVal e As Syncfusion.Windows.Forms.Grid.Grouping.GridTableCellStyleInfoEventArgs)
If e.TableCellIdentity.TableCellType = GridTableCellType.RecordPlusMinusCell Then
Dim r As Record = TryCast(e.TableCellIdentity.DisplayElement.ParentRecord, Record)
If r IsNot Nothing AndAlso r.NestedTables.Count > 0 AndAlso r.NestedTables(0).ChildTable.FilteredChildNodeCount = 0 Then
e.Style.CellType = "Static"
End If
End If
End SubAfter
applying the properties, the grid looks like the following screenshot.

Figure 1: Child tables hidden when there is no record
Samples: