如何更新 InputSelect 源
How to update InputSelect source
我的组件上有一个 InputSelect 控件,我需要即时重新填充它。 IE。根据所选国家/地区重新填充 states/provinces 列表。这是代码:
<InputSelect id="shippingAddressState" @bind-Value="AddressModel.State" class="form-control selectpicker mx-2">
<option value="">--Select State--</option>
@foreach (SharedLibrary.Models.StateProvince state in States)
{
<option value="@state.IsoCode">@state.Name</option>
}
</InputSelect>
在后面的代码中:
[Parameter]
public List<StateProvince> States { get; set; } = new List<StateProvince>();
[Parameter]
public EventCallback<List<StateProvince>> StatesChanged { get; set; }
...
States = await JsonGetter.GetConcreteResult<List<StateProvince>>(stateProvinceUrl);
await StatesChanged.InvokeAsync(States);
但下拉列表中没有任何变化。我错过了什么?到目前为止我能找到的只是绑定所选值,而不是下拉列表的来源...
我明白了。我需要像这样手动调用 StateHasChanged():
States = await ConcreteHttpResultGetter.GetConcreteResult<List<StateProvince>>(stateProvinceUrl);
StateHasChanged();
这会刷新组件。
我的组件上有一个 InputSelect 控件,我需要即时重新填充它。 IE。根据所选国家/地区重新填充 states/provinces 列表。这是代码:
<InputSelect id="shippingAddressState" @bind-Value="AddressModel.State" class="form-control selectpicker mx-2">
<option value="">--Select State--</option>
@foreach (SharedLibrary.Models.StateProvince state in States)
{
<option value="@state.IsoCode">@state.Name</option>
}
</InputSelect>
在后面的代码中:
[Parameter]
public List<StateProvince> States { get; set; } = new List<StateProvince>();
[Parameter]
public EventCallback<List<StateProvince>> StatesChanged { get; set; }
...
States = await JsonGetter.GetConcreteResult<List<StateProvince>>(stateProvinceUrl);
await StatesChanged.InvokeAsync(States);
但下拉列表中没有任何变化。我错过了什么?到目前为止我能找到的只是绑定所选值,而不是下拉列表的来源...
我明白了。我需要像这样手动调用 StateHasChanged():
States = await ConcreteHttpResultGetter.GetConcreteResult<List<StateProvince>>(stateProvinceUrl);
StateHasChanged();
这会刷新组件。