I got to set a default value for this dropdown to show selected when the page loads. However, the issue I am having, is that after the value is changed by the user, if the user wants to reset the dropdown, it would not change to the initial value.
@inject EventServiceHub _eventService
@inject IJSRuntime _jsRuntime
@implements IDisposable
<div class="d-flex flex-column border-end border-1 px-2 py-1" style="width:200px">
<label class="text-secondary">Affirmation Status</label>
<RadzenDropDown @ref="affirmStatusDDL" TValue="string" Data="@AffirmStatusList"
Value="@_selectedItem" SelectedItem="@_selectedItem"
Change="@(value => OnValueChanged(value.ToString()))"/>
</div>
@code {
protected RadzenDropDown<string> affirmStatusDDL;
protected List<string> AffirmStatusList;
private string _selectedItem = "Open";
protected override void OnInitialized()
{
AffirmStatusList = new List<string>() { "All", "Expired", "Open", "Required", "Not Required" };
_eventService.OnFilterReset += ResetFilter;
}
protected void OnValueChanged(string value)
{
FilterParameters.AffirmStatuses = value;
StateHasChanged();
}
private void ResetFilter(object s, string args)
{
_selectedItem = "Open";
if (affirmStatusDDL != null)
{
affirmStatusDDL.SelectedItem = _selectedItem;
affirmStatusDDL.Value = _selectedItem;
}
FilterParameters.AffirmStatuses = "Open";
StateHasChanged();
}
public void Dispose()
{
_eventService.OnFilterReset -= ResetFilter;
}
}
I tried a few different ways to set the value back to the initial one on Reset but no luck yet. This is my latest attempt.