如何向 inputRadio 添加 on change 事件?
How to add an on change event to an inputRadio?
有人知道如何向 inputRadio 添加 on change 事件吗?
我知道你可以做到以下几点
<input type="radio" @onchange="ChangeFunction"/>
这将达到 ChangeFunction()
但是如果我执行以下操作
<InputRadioGroup @bind-Value="@i.LeaveRequest.DayTime">
<label>Full Day</label>
<InputRadio Value="@FullDay" class="checkbox-P" @onchange="ChangeFunction"/>
</InputRadioGroup>
它永远不会命中函数。
我也试过将 @onchange="ChangeFunction"
添加到 InputRadioGroup
行,但似乎都没有实现该功能。
有人知道怎么做吗?
您可以创建普通的单选按钮:
@foreach (var item in new string[] {"AspNetCore","AspNet","SomeJsThingWhatever"})
{
<div>
<input type="radio" name="technology" id="@item" value="@item"
@onchange="RadioSelection"
checked=@(RadioValue.Equals(item,StringComparison.OrdinalIgnoreCase))
/>
<label for="@item">@item</label>
</div>
}
<div>
<label>Selected Value is @RadioValue</label>
</div>
@functions
{
string RadioValue = "aspnetcore";
void RadioSelection(ChangeEventArgs args)
{
RadioValue = args.Value.ToString();
}
}
Blazor 页面
<EditForm Model="Items">
<InputRadioGroup ValueChanged="@((e) => OnRadiochange(e))" TValue="string" ValueExpression="() => SelectedValue">
@foreach (var item in Items)
{
bool Checked= false;
if (SelectedValue.Equals(item, StringComparison.OrdinalIgnoreCase))
{
Checked = true;
}
<div class="form-check">
<InputRadio Value="@item" class="form-check-input" checked=@Checked />
@item <br />
</div>
}
</InputRadioGroup>
代码隐藏
public string SelectedValue { get; set; } = "AspNetCore";
public List<string> Items { get; set; } = new List<string> { "AspNetCore", "AspNet", "SomeJsThingWhatever" };
private void OnRadiochange(object sender)
{
SelectedValue = (string)sender;
StateHasChanged();
}
有人知道如何向 inputRadio 添加 on change 事件吗?
我知道你可以做到以下几点
<input type="radio" @onchange="ChangeFunction"/>
这将达到 ChangeFunction()
但是如果我执行以下操作
<InputRadioGroup @bind-Value="@i.LeaveRequest.DayTime">
<label>Full Day</label>
<InputRadio Value="@FullDay" class="checkbox-P" @onchange="ChangeFunction"/>
</InputRadioGroup>
它永远不会命中函数。
我也试过将 @onchange="ChangeFunction"
添加到 InputRadioGroup
行,但似乎都没有实现该功能。
有人知道怎么做吗?
您可以创建普通的单选按钮:
@foreach (var item in new string[] {"AspNetCore","AspNet","SomeJsThingWhatever"})
{
<div>
<input type="radio" name="technology" id="@item" value="@item"
@onchange="RadioSelection"
checked=@(RadioValue.Equals(item,StringComparison.OrdinalIgnoreCase))
/>
<label for="@item">@item</label>
</div>
}
<div>
<label>Selected Value is @RadioValue</label>
</div>
@functions
{
string RadioValue = "aspnetcore";
void RadioSelection(ChangeEventArgs args)
{
RadioValue = args.Value.ToString();
}
}
Blazor 页面
<EditForm Model="Items">
<InputRadioGroup ValueChanged="@((e) => OnRadiochange(e))" TValue="string" ValueExpression="() => SelectedValue">
@foreach (var item in Items)
{
bool Checked= false;
if (SelectedValue.Equals(item, StringComparison.OrdinalIgnoreCase))
{
Checked = true;
}
<div class="form-check">
<InputRadio Value="@item" class="form-check-input" checked=@Checked />
@item <br />
</div>
}
</InputRadioGroup>
代码隐藏
public string SelectedValue { get; set; } = "AspNetCore";
public List<string> Items { get; set; } = new List<string> { "AspNetCore", "AspNet", "SomeJsThingWhatever" };
private void OnRadiochange(object sender)
{
SelectedValue = (string)sender;
StateHasChanged();
}