diff --git a/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown.csproj b/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown.csproj
index dcbe22f41d..1cb1a110d5 100644
--- a/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown.csproj
+++ b/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown.csproj
@@ -1,7 +1,7 @@
- net7.0
+ net10.0
enable
enable
@@ -13,8 +13,8 @@
true
-
-
+
+
diff --git a/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown/Pages/Index.razor b/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown/Pages/Index.razor
index 3653580770..41b2ef0286 100644
--- a/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown/Pages/Index.razor
+++ b/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdown/Pages/Index.razor
@@ -36,16 +36,35 @@
}
+
+Fourth topping (InputSelect inside EditForm):
+
+
+ @foreach (var topping in toppings)
+ {
+
+ }
+
+
+
Fourth topping total: $@fourthTotal
@code
{
public record Topping(int Id, string Name, double Price);
+
+ public class Order
+ {
+ public int ToppingId { get; set; }
+ }
+
public string? selectedTopping;
public string? selectedSecondTopping;
public string? selectedThirdTopping;
public static double baseBurgerCost = 5.4;
public double totalCost = baseBurgerCost;
public double grandTotal;
+ public double fourthTotal;
+ public Order order = new();
public List toppings = new List()
{
@@ -59,21 +78,26 @@
public void HandleChange(ChangeEventArgs args)
{
- @foreach (var topping in toppings)
+ if (!int.TryParse(args.Value?.ToString(), out var id))
{
- if (topping.Id == int.Parse(args.Value.ToString()))
- {
- selectedSecondTopping = topping.Name;
- totalCost = Math.Round(baseBurgerCost + topping.Price, 2);
- }
+ return;
}
+
+ var topping = toppings.FirstOrDefault(t => t.Id == id);
+ if (topping is null)
+ {
+ return;
+ }
+
+ selectedSecondTopping = topping.Name;
+ totalCost = Math.Round(baseBurgerCost + topping.Price, 2);
}
public async Task CalculateGrandTotal()
{
await Task.Delay(2000);
- @foreach (var topping in toppings)
+ foreach (var topping in toppings)
{
if (topping.Id == int.Parse(selectedThirdTopping))
{
@@ -81,4 +105,10 @@
}
}
}
+
+ public void RecalculateTotal()
+ {
+ var topping = toppings.FirstOrDefault(t => t.Id == order.ToppingId);
+ fourthTotal = topping is null ? 0 : Math.Round(baseBurgerCost + topping.Price, 2);
+ }
}
diff --git a/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdownTests/OnChangeEventWithSelectDropdownTests.csproj b/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdownTests/OnChangeEventWithSelectDropdownTests.csproj
index af8d508e2b..3f629087b7 100644
--- a/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdownTests/OnChangeEventWithSelectDropdownTests.csproj
+++ b/blazor-features/OnChangeEventWithSelectDropdown/OnChangeEventWithSelectDropdownTests/OnChangeEventWithSelectDropdownTests.csproj
@@ -1,7 +1,7 @@
- net7.0
+ net10.0
enable
enable
@@ -10,11 +10,11 @@
-
-
-
-
-
+
+
+
+
+