选择控制集初始值 [英] Select Control Set Initial Value

查看:31
本文介绍了选择控制集初始值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们知道使用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; }
    }
}

这篇关于选择控制集初始值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆