DataGrid nested inside another DataGrid does not refresh with new child data #271

Closed
opened 2026-01-29 17:34:33 +00:00 by claunia · 1 comment
Owner

Originally created by @sbscomp on GitHub (Dec 4, 2021).

Given a list of objects, where each object contains a child list of objects, when you add an element to the child list, the RadzenDataGrid fails to update the inner datagrid. The parent RadzenDataGrid refreshes just fine, but adding anything to a child list fails to refresh, although you can see when debugging that the child object list has been updated.

Here's a very basic example:

    public class AAA
    {
        public AAA() {this.BBBs = new List<BBB>(); }
        public string Name { get; set; }
        public List<BBB> BBBs { get; set; }
    }

    public class BBB
    {
        public string Name { get; set; }
    }
<RadzenDataGrid Data="@AAAs" TItem="AAA" @ref="@grid">
    <Template Context="aaa">
        <RadzenDataGrid Data="aaa.BBBs" TItem="BBB">
            <Columns>
                <RadzenDataGridColumn Property="Name" TItem="BBB" />
            </Columns>
        </RadzenDataGrid>
    </Template>
    <Columns>
        <RadzenDataGridColumn Property="Name" TItem="AAA" />
        <RadzenDataGridColumn TItem="AAA">
            <Template Context="aaa">
                <RadzenButton Click="()=>AddBBB(aaa)">Add BBB</RadzenButton>
            </Template>
        </RadzenDataGridColumn>
    </Columns>
</RadzenDataGrid>

<RadzenButton Click="()=>AddAAA()">Add AAA</RadzenButton>

@code { 
    List<AAA> AAAs = new List<AAA>();
    RadzenDataGrid<AAA> grid;

    async Task AddBBB(AAA a)
    {
        a.BBBs.Add(new BBB { Name = Guid.NewGuid().ToString() });
        StateHasChanged();
        await grid.Reload();
    }
    async Task AddAAA()
    {
        AAAs.Add(new AAA { Name = Guid.NewGuid().ToString() });
        StateHasChanged();
        await grid.Reload();
    }
}
Originally created by @sbscomp on GitHub (Dec 4, 2021). Given a list of objects, where each object contains a child list of objects, when you add an element to the child list, the RadzenDataGrid fails to update the inner datagrid. The parent RadzenDataGrid refreshes just fine, but adding anything to a child list fails to refresh, although you can see when debugging that the child object list has been updated. Here's a very basic example: ``` public class AAA { public AAA() {this.BBBs = new List<BBB>(); } public string Name { get; set; } public List<BBB> BBBs { get; set; } } public class BBB { public string Name { get; set; } } ``` ``` <RadzenDataGrid Data="@AAAs" TItem="AAA" @ref="@grid"> <Template Context="aaa"> <RadzenDataGrid Data="aaa.BBBs" TItem="BBB"> <Columns> <RadzenDataGridColumn Property="Name" TItem="BBB" /> </Columns> </RadzenDataGrid> </Template> <Columns> <RadzenDataGridColumn Property="Name" TItem="AAA" /> <RadzenDataGridColumn TItem="AAA"> <Template Context="aaa"> <RadzenButton Click="()=>AddBBB(aaa)">Add BBB</RadzenButton> </Template> </RadzenDataGridColumn> </Columns> </RadzenDataGrid> <RadzenButton Click="()=>AddAAA()">Add AAA</RadzenButton> @code { List<AAA> AAAs = new List<AAA>(); RadzenDataGrid<AAA> grid; async Task AddBBB(AAA a) { a.BBBs.Add(new BBB { Name = Guid.NewGuid().ToString() }); StateHasChanged(); await grid.Reload(); } async Task AddAAA() { AAAs.Add(new AAA { Name = Guid.NewGuid().ToString() }); StateHasChanged(); await grid.Reload(); } } ```
Author
Owner

@enchev commented on GitHub (Dec 6, 2021):

You need to reload the child grid:
image
innergrid

@enchev commented on GitHub (Dec 6, 2021): You need to reload the child grid: ![image](https://user-images.githubusercontent.com/5804953/144813563-d2eb31f5-01c4-410e-8628-4d7c89544ce5.png) ![innergrid](https://user-images.githubusercontent.com/5804953/144813603-e3ce4f9c-05db-4f6b-9900-e2d91c3dc9d4.gif)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/radzen-blazor#271