the following code worked until 5.9.9 any version greater breaks; am I doing something wrong or is there a bug with the latest versions of Radzen?
@page "/dynamic-data-grid"
@using Newtonsoft.Json
@using Newtonsoft.Json.Linq
<h1>Dynamic Data Grid with Grouping</h1>
<RadzenDataGrid Data="@data"
Render="OnRender"
GroupRowRender="OnGroupRowRender">
<GroupHeaderTemplate>
@context.GroupDescriptor.GetTitle()
</GroupHeaderTemplate>
<Columns>
@foreach (var property in ((JObject)data.First()).Properties().Select(p => p.Name).ToList())
{
<RadzenDataGridColumn TItem="JToken"
Property="@property"
Title="@property">
<Template>
<div>
@(context.Value<dynamic>(property)?.ToString())
</div>
</Template>
</RadzenDataGridColumn>
}
</Columns>
</RadzenDataGrid>
@code {
bool? groupsExpanded;
private JToken data = default!;
protected override async Task OnInitializedAsync() => await LoadData();
private async Task LoadData()
{
// Simulating JSON data (replace this with your actual JSON data source)
string jsonString = @"[
{""Id"": 1, ""Name"": ""John Doe"", ""Department"": ""IT"", ""Salary"": 75000},
{""Id"": 2, ""Name"": ""Jane Smith"", ""Department"": ""HR"", ""Salary"": 65000},
{""Id"": 3, ""Name"": ""Bob Johnson"", ""Department"": ""IT"", ""Salary"": 80000},
{""Id"": 4, ""Name"": ""Alice Brown"", ""Department"": ""Finance"", ""Salary"": 70000},
{""Id"": 5, ""Name"": ""Charlie Wilson"", ""Department"": ""HR"", ""Salary"": 62000}
]";
// Parse the JSON string to a JToken
data = await Task.FromResult(JToken.Parse(jsonString));
}
void OnRender(DataGridRenderEventArgs<JToken> args)
{
if (args.FirstRender)
{
args.Grid.Groups.Add(new GroupDescriptor() { Title = "Department", Property = "Department", SortOrder = SortOrder.Descending });
StateHasChanged();
}
}
void OnGroupRowRender(GroupRowRenderEventArgs args)
{
args.Expanded = groupsExpanded;
}
}