@page "/" <table> <tr> <th style="width:50px" /> <th style="width:200px">Region</th> <th style="width:200px">Sales</th> </tr> @foreach (var country in Countries) { <tr style="cursor:pointer;" @onclick="()=>country.ShowCities = !country.ShowCities"> @if (!country.ShowCities){ <td>&#x23F5;</td> } else { <td>&#x23F7;</td> } <td >@country.Name</td> <td>@(AllCitySales.Where(acs=>acs.CountryID==country.ID).Sum(cs=>cs.Sales))</td> </tr> if (country.ShowCities) { foreach (var city in AllCitySales.Where(acs => acs.CountryID == country.ID)) { <tr> <td/> <td>&nbsp;&nbsp;&#8226;&nbsp;@city.Name</td> <td>@city.Sales</td> </tr> } } } </table> @code { public class Country { public int? ID; public string? Name; public bool ShowCities; } public class CitySales { public int ID; public int CountryID; public string? Name; public int Sales; } public List<Country> Countries = new List<Country> { new Country{ ID = 1, Name="France"}, new Country{ ID = 2, Name="England"} }; public List<CitySales> AllCitySales = new List<CitySales> { new CitySales{ ID = 1, CountryID = 1, Name="Paris", Sales = 453}, new CitySales{ ID = 2, CountryID = 1, Name="Marseille", Sales = 100}, new CitySales{ ID = 3, CountryID = 2, Name="New York", Sales = 123}, new CitySales{ ID = 4, CountryID = 2, Name="Los Angeles", Sales = 420}, new CitySales{ ID = 5, CountryID = 2, Name="Scranton", Sales = 69} }; }
namespace BlazorFiddleProject { using Microsoft.AspNetCore.Components.Builder; using Microsoft.Extensions.DependencyInjection; public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IComponentsApplicationBuilder app) { app.AddComponent<App>("app"); } } }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width"> <title>BlazorFiddleProject</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <script src="_content/MatBlazor/dist/matBlazor.js"></script> <style> app { } </style> <script type="text/javascript"> </script> </head> <body> <app>Loading...</app> <script src="_framework/blazor.webassembly.js"></script> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html>

Add component

BlazorFiddle was updated from Blazor 0.7 to .NET 6.0. Your old source code could not work. You need to upgrade to latest.