Customising a JSON data source

If you want to customise your JSON data source you can do so and then supply the transformed JSON as a string to the GridModel constructor

Loading...
Razor code

HttpClient client = new HttpClient();
string json = await client.GetStringAsync("https://api.nobelprize.org/v1/prize.json");
NobelPrizes nobelPrizes = System.Text.Json.JsonSerializer.Deserialize<NobelPrizes>(json);
List<NobelPrizeLaureate> transformedList = nobelPrizes.prizes.Where(p => p.laureates != null).SelectMany(p => p.laureates.Select(l => new { p, l })).Select(x => new NobelPrizeLaureate(x.p, x.l)).ToList();
var gridModel = new GridModel(DataSourceType.JSON, System.Text.Json.JsonSerializer.Serialize(transformedList));

gridModel.Columns = new List<GridColumn>()
    {
    new GridColumn("Id"),
    new GridColumn("Year") { Filter = true, Lookup = new Lookup()},
    new GridColumn("Category") {  Filter = true, Lookup = new Lookup()},
    new GridColumn("Firstname"),
    new GridColumn("Surname"),
    new GridColumn("Motivation"),
    new GridColumn("Share") {  Filter = true, Lookup = new Lookup()}
};

gridModel.Cache = true;

@(await new DbNetSuiteCore.GridControl(HttpContext).Render(gridModel))