本文介绍了选择控制集初始值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们知道使用InputSelect
不能同时使用@bind-value和@onchange.
但是,如果我们使用后者(使用select
而不是InputSelect
),我们如何设置与第一个不同的初始值?(例如,在设置为2018的此示例中,变量的值)
类似if (i == month) => selected
<select @onchange="ChangeYear">
@for (int i = 2015; i < DateTime.Now.Year + 1; i++)
{
<option value="@i">@i</option>
}
</select>
@code {
int year = 2018;
void ChangeYear(ChangeEventArgs e)
{
int year = Convert.ToInt32(e.Value.ToString());
//...
}
}
推荐答案
可以通过多种方式实现它,例如,定义绑定到SELECT元素的Value属性的局部变量SelectedYear,以及更新SelectedYear的Change事件。这实际上创建了双向数据绑定。
请注意,SelectedYear被分配了默认值2018
<select value="@SelectedYear" @onchange="ChangeYear">
@for (int i = 2015; i < DateTime.Now.Year + 1; i++)
{
<option value="@i">@i</option>
}
</select>
<p>@SelectedYear</p>
@code
{
private int SelectedYear { get; set; } = 2018;
void ChangeYear(ChangeEventArgs e)
{
SelectedYear = Convert.ToInt32(e.Value.ToString());
}
}
我们知道使用InputSelect不能同时使用@bind-value和 @onchange
这是因为编译器添加了Change事件处理程序来将InputSelect组件的值(请注意,它是@bind-value,而不是@bind-value)属性更新为新选择的值。这就是您可以这样做的原因:
<p>@SelectedYear</p>
<EditForm Model="@employees">
<DataAnnotationsValidator />
<div>
<InputSelect @bind-Value="SelectedYear" Id="SelectedYear" Class="form-control">
@for (int i = 2015; i < DateTime.Now.Year + 1; i++)
{
<option value="@i">@i</option>
}
</InputSelect>
</div>
<button type="submit">Ok</button>
</EditForm>
@code
{
private string SelectedYear { get; set; } = "2018";
public List<Employee> employees = new List<Employee>();
public class Employee
{
public int YearBorn { get; set; }
public string Name { get; set; }
}
}
这篇关于选择控制集初始值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!