Category / Section
How to hide the ChildTable that does not have any record to show up in the WinForms GridGroupingControl?
1 min read
Hide the child table
The QueryCellStyleInfo event of the 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.
C#
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"; } } }
VB
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 Sub
After applying the properties, the grid looks like the following screenshot.
Figure 1: Child tables hidden when there is no record
Samples: