Articles in this section
Category / Section

How to customize the group caption text in WinForms DataGrid?

5 mins read

Customize the group caption text

WinForms DataGrid, the group caption text contains the mapping name of the grouped column, key value, and number of items in the group. This caption text can be changed by using the SfDataGrid.DrawCell event.

In the example, the group caption text is customized to display the total number of records and subgroups in the group, if any.

C#

sfDataGrid.DrawCell += sfDataGrid_DrawCell;
 
void sfDataGrid_DrawCell(object sender, Syncfusion.WinForms.DataGrid.Events.DrawCellEventArgs e)
{
    if (e.DataRow.RowType == RowType.CaptionCoveredRow && !string.IsNullOrEmpty(e.DisplayText))
    {
        var displayText = string.Empty;
        var group = (e.DataRow.RowData as Syncfusion.Data.Group);
        if (group != null)
        {
            if (group.Groups != null)
            {
                int records = 0;
                records = GetTotalRecordsCount(group);
                displayText = group.Key.ToString() + ": " + records + " Records (" + group.Groups.Count + " Sub Groups)";
            }
            else if (group.Records != null)
                displayText = group.Key.ToString() + ": " + group.Records.Count + " Records";
            e.DisplayText = displayText;
        }
    }
}
 
private int GetTotalRecordsCount(Group group)
{
    int count = 0;
 
    if (group.Groups != null)
    {
        foreach (var g in group.Groups)
        {
            if (g.Groups != null)
                foreach (var g1 in g.Groups)
                    count += GetTotalRecordsCount(g1);
 
            if (g.Records != null)
                count += g.Records.Count;
        }
    }
    else
        if (group.Records != null)
            count += group.Records.Count;
 
    return count;
}

VB

AddHandler sfDataGrid.DrawCell, AddressOf sfDataGrid_DrawCell
 
Private Sub sfDataGrid_DrawCell(ByVal sender As Object, ByVal e As Syncfusion.WinForms.DataGrid.Events.DrawCellEventArgs)
 If e.DataRow.RowType = RowType.CaptionCoveredRow AndAlso (Not String.IsNullOrEmpty(e.DisplayText)) Then
  Dim displayText = String.Empty
  Dim group = (TryCast(e.DataRow.RowData, Syncfusion.Data.Group))
  If group IsNot Nothing Then
   If group.Groups IsNot Nothing Then
    Dim records As Integer = 0
    records = GetTotalRecordsCount(group)
    displayText = group.Key.ToString() & ": " & records & " Records (" & group.Groups.Count & " Sub Groups)"
   ElseIf group.Records IsNot Nothing Then
    displayText = group.Key.ToString() & ": " & group.Records.Count & " Records"
   End If
   e.DisplayText = displayText
  End If
 End If
End Sub
 
Private Function GetTotalRecordsCount(ByVal group As Group) As Integer
 Dim count As Integer = 0
 
 If group.Groups IsNot Nothing Then
  For Each g In group.Groups
   If g.Groups IsNot Nothing Then
    For Each g1 In g.Groups
     count += GetTotalRecordsCount(g1)
    Next g1
   End If
 
   If g.Records IsNot Nothing Then
    count += g.Records.Count
   End If
  Next g
 Else
  If group.Records IsNot Nothing Then
   count += group.Records.Count
  End If
 End If
 
 Return count
End Function

 

Show the customized group caption text

Samples:

C#: GroupCaptionText

VB: GroupCaptionText



Conclusion

I hope you enjoyed learning about how to customize the group caption text in WinForms DataGrid (SfDataGrid).

You can refer to our WinForms DataGrid feature tour page to know about its other groundbreaking feature representations. You can also explore our  WinForms DataGrid documentation to understand how to present and manipulate data.

For current customers, you can check out our WinForms components from the License and Downloads page. If you are new to Syncfusion, you can try our 30-day free trial to check out our WinForms DataGrid and other WinForms components.


If you have any queries or require clarifications, please let us know in comments below. You can also contact us through our support forumsDirect-Trac, or feedback portal. We are always happy to assist you!

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