我有一个Blazor应用程序,该应用程序使用来自数据库的数据填充6个select选项下拉列表。其中的三个用字符串列表中的日期和时间填充。
当我选择日期和时间时,它不会显示在下拉框中。选择日期时间后,下拉列表为空白,但实际上已选择了该值,并且绑定有效。它只是不显示。
如果我删除“ bind = @ ...”,它将正确显示。 其他人有没有遇到过,您如何解决?
<select bind="@Innput.Klokkeslett1">
<option value="@(0)">Tid1</option>
@foreach (var tid1 in tidListe)
{
<option value="@tid1">@tid1</option>
}
</select>
答案 0 :(得分:2)
需要注意的两件事,select
使用字符串值,并且该值必须与option
值匹配。
因此,如果您的字段Innput.Klokkeslett1是DateTime,则需要使用一个属性来处理字符串和DateTime之间的绑定/转换。
如果您确保为option
值使用显式日期格式,并且您的属性以相同的日期格式返回其值,那么select将能够将其value
与其中的{{ 1}} option
并显示相应的文本,可以按照自己喜欢的任何方式对其进行格式化。
values
答案 1 :(得分:1)
<select onchange="@ComboSelectionChanged">
<option value="0" selected>
@list[0]
</option>
@for (int i = 1; i < list.Count; i++)
{
<option value="@i">
@list[i]
</option>
}
</select>
public void ComboSelectionChanged(UIChangeEventArgs e)
{
if (int.TryParse(e.Value.ToString(), out int index))
{
SelectedStyleIndex = index
//now you know which one is selected
}
}