@page "/"
@using Microsoft.AspNetCore.Components.Forms
@using System.Linq.Expressions
@code {
private ESelect eSelect;
// private string eSelectResult;
private readonly List<SelectOption> options = new List<SelectOption>
{
new SelectOption { Id = 1, Value = "Jones" },
new SelectOption { Id = 2, Value = "Smith" },
new SelectOption { Id = 3, Value = "Bender" },
new SelectOption { Id = 4, Value = "Baggio" },
new SelectOption { Id = 5, Value = "Allen" },
new SelectOption { Id = 6, Value = "Biggs" },
new SelectOption { Id = 7, Value = "Randall" },
new SelectOption { Id = 8, Value = "Anderson" },
new SelectOption { Id = 8, Value = "Reeves" }
};
public static void ActionPlaceholder()
{
Log.Print("Action - Parent Method Executed");
}
public void OnValueChange(ChangeEventArgs e)
{
Log.Print("OnValueChange " + e.Value);
}
public Action EnableEnhancedSelect2 = ActionPlaceholder;
void ValidFormSubmit()
{
Log.Print("Form Submit Placeholder");
}
public class FormModel {
public string LastName {get; set;}
}
public FormModel Form {get; set;} = new FormModel { LastName = "Smith" };
// for demo only to make log show on start
protected override void OnAfterRender(bool firstRender)
{
if (firstRender && Log.Items.Count > 0) StateHasChanged();
base.OnAfterRender(firstRender);
}
}
<EditForm Model="Form" OnValidSubmit="ValidFormSubmit" class="mt-5">
<DataAnnotationsValidator />
<h3>Form Example:</h3>
<ValidationSummary />
<h3 class="mt-4">Enhanced Select</h3>
<ESelect Id="ESelect" @ref="eSelect" @bind-Value="Form.LastName" Options="@options" ValidationFor="@( () => Form.LastName )"
Label="Last Name" Trigger="EnableEnhancedSelect2"/>
<p>Form.LastName = @Form.LastName</p>
</EditForm>
<hr/>
Log:
<ol>
@foreach(var item in Log.Items) {
<li>@item</li>
}
</ol>