Drop down menu Blazor select下拉列表按代码设置活动值
我正在根据列表的内容动态填充下拉列表的值。选择下拉列表中的项目时,将显示删除该项目的选项。当项目被删除时,它首先从列表中删除,然后重建下拉列表,这就是我遇到问题的地方。在重建下拉列表时,它不会将下拉列表返回到默认值,而仅在删除的下拉列表下方的值显示为选中(在不触发@onchange值的情况下会发生这种情况)。重建下拉列表时,如何使其返回默认值 下面是一些代码,Razor代码:Drop down menu Blazor select下拉列表按代码设置活动值,drop-down-menu,html-select,onchange,blazor,blazor-server-side,Drop Down Menu,Html Select,Onchange,Blazor,Blazor Server Side,我正在根据列表的内容动态填充下拉列表的值。选择下拉列表中的项目时,将显示删除该项目的选项。当项目被删除时,它首先从列表中删除,然后重建下拉列表,这就是我遇到问题的地方。在重建下拉列表时,它不会将下拉列表返回到默认值,而仅在删除的下拉列表下方的值显示为选中(在不触发@onchange值的情况下会发生这种情况)。重建下拉列表时,如何使其返回默认值 下面是一些代码,Razor代码: <select class="form-control" @onchange="selectedValue">
<select class="form-control" @onchange="selectedValue">
<option value="">select one</option>
@foreach (var mod in values)
{
<option value="@mod.Id">@mod.Name</option>
}
</select>
列表本身(在填充之前):
总而言之,发生了这样的事情:
@page/“
选择一个
@foreach(项目中的var项目)
{
@项目名称
}
@选择值
@代码{
[Inject]IJSRuntime JSRuntime{get;set;}
私有元素引用myselect;
列表项=可枚举。范围(1,10)。选择(i=>newitem{
Name=$“Name{i.ToString()}”,ID=i}).ToList();
公共字符串SelectedValue=“”;
public void selectedValue(ChangeEventArgs args args)
{
SelectedValue=args.Value.ToString();
var item=items.Single(item=>item.ID==Convert.ToInt32(SelectedValue));
项目。移除(项目);
JSRuntime.InvokeVoidAsync(“exampleJsFunctions.selectElement”,myselect);
}
公共类项目
{
公共字符串名称{get;set;}
公共int ID{get;set;}
}
}
将以下JS代码放入_Host.cshtml文件中:
window.exampleJsFunctions=
{
选择元素:函数(元素){
element.selectedIndex=0;
}
};
我认为有一种使用JSInterop的方法可以做到这一点,但我认为可能有一种我刚刚错过的更好的方法。可惜没有。我接受你的回答,谢谢你的帮助@user10483669是的,可以只使用blazor。您只需要使用html+css+blazor编写所有代码。并且不要使用选择选项结构。只需使用、标记,您需要一个下拉弹出窗口,以及blazor处理的一些事件。@Sorush?这是GR8,能举个例子吗?我没有在附近见过任何人,也没有完全让它自己工作。
public class Items
{
public string Name { get; set; }
public int Id { get; set; }
public Items(string name, int id)
{
Name = name;
Id = id;
}
}
public List<Items> itm = new List<Items>();
public string SelectedValue = "";
public void selectedValue(ChangeEventArgs selectEvent)
{
SelectedValue = selectEvent.Value.ToString();
}