我有一个 Blazor 应用程序,它使用来自数据库的数据填充 6 个选择选项下拉列表。其中三个用字符串列表中的日期和时间填充。
当我选择一个日期和时间时,它没有显示在下拉框中。选择日期时间后,下拉列表为空白,但实际上已选择该值并且绑定(bind)有效。它只是没有显示。
如果我删除“bind=@...”,它会正确显示。 有没有其他人经历过这个,你是如何解决的?
<select bind="@Innput.Klokkeslett1">
<option value="@(0)">Tid1</option>
@foreach (var tid1 in tidListe)
{
<option value="@tid1">@tid1</option>
}
</select>
最佳答案
需要注意两点,select
使用字符串值,并且该值需要与 option
值相匹配。
因此,如果您的字段 Innput.Klokkeslett1 是 DateTime,您将需要使用一个属性来处理字符串和 DateTime 之间的绑定(bind)/转换。
如果您确保为 option
值使用明确的日期格式,并且您的属性以相同的日期格式返回它的值,则选择将能够匹配它的 value
到其中一个 option
values
并显示相应的文本,可以按照您喜欢的任何方式进行格式化。
<select bind="@MySelectProxy">
<option value="@(0)">Tid1</option>
@foreach (var tid1 in tidListe)
{
<option value="@tid1.ToString("yyyy-MM-dd HH:mm:ss")">@tid1</option>
}
</select>
@functions
{
string MySelectProxy {
get => Innput.Klokkeslett1.ToString("yyyy-MM-dd HH:mm:ss");
set => DateTime.TryParse(value, out Innput.Klokkeslett1);
}
}
关于c# - 选择选项下拉列表不显示所选选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55426234/