简体   繁体   English

如何获取 blazor 中单选按钮的值?

[英]how to get the value of a radio button in blazor?

hello community I have a problem how can I get the value of a radio button in blazor , I have three radio buttons in the first two I want to put a value number 0 and 16 to save them in the database and in the third button a bool value to show some input if that value was selected,but the truth is I don't know how to do this since I understand that in blazor you can't even put the bidirectional values with bind-value你好社区我有一个问题如何获取blazor中的radio button的值,前两个中有三个单选按钮我想将值编号016保存在数据库中,并在第三个按钮中如果选择了该值,则bool值以显示一些输入,但事实是我不知道该怎么做,因为我知道在 blazor 中,您甚至不能将双向值与bind-value

this is my code:这是我的代码:

 <div class="form-group col-md-2">
    <label>Impuestos</label>
    <div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" @bind-value="@ImpuestoDetalle.Tasa">
            <label class="form-check-label" for="inlineRadio1">0%</label>
        </div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" @bind-value="@ImpuestoDetalle.Tasa">
            <label class="form-check-label" for="inlineRadio2">16%</label>
        </div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" @bind="@Perzonalizado">
            <label class="form-check-label" for="inlineRadio3">Perzonalizado</label>
        </div>
    </div>
</div>




 @if (Perzonalizado)
   {
     <div class="form-group col-md-2">
       <label>Tasa</label>
     <div>
     <input type="number" class="form-control" @bind-value="@ImpuestoDetalle.Tasa" />
     </div>
     </div>
    }


@code {
    private Impuesto Impuesto = new Impuesto();
    private ImpuestoDetalle ImpuestoDetalle = new ImpuestoDetalle();

    private Boolean Perzonalizado = false;
}

Tried this really quickly and achieved in a slightly different way using onchange event:使用onchange事件非常快速地尝试并以稍微不同的方式实现了这一点:

<div class="form-group col-md-2">
    <label>Impuestos</label>
    <div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" @onchange="@(() => UpdatePercentage(0))">
            <label class="form-check-label" for="inlineRadio1">0%</label>
        </div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" @onchange="@(() => UpdatePercentage(16))">
            <label class="form-check-label" for="inlineRadio2">16%</label>
        </div>
        <div class="form-check form-check-inline">
            <input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" @onchange="@(() => Perzonalized())">
            <label class="form-check-label" for="inlineRadio3">Perzonalizado</label>
        </div>
    </div>
</div>


@if (Perzonalizado)
{
    <div class="form-group col-md-2">
        <label>Tasa</label>
        <div>
            <input type="number" class="form-control" @bind-value="@ImpuestoDetalleM.Tasa" />
        </div>
    </div>
}

@code {

    public ImpuestoDetalle ImpuestoDetalleM = new ImpuestoDetalle();

    private Boolean Perzonalizado = false;

    public class ImpuestoDetalle
    {
        public int Tasa { get; set; }
    }

    public void Perzonalized()
    {
        Perzonalizado = true;
    }

    public void UpdatePercentage(int percentage)
    {
        Perzonalizado = false;
        ImpuestoDetalleM.Tasa = percentage;
    }
}

So basically when the radio button is clicked, we fill the value by passing from parameter.所以基本上当单击单选按钮时,我们通过传递参数来填充值。

You can also try the snippet here: https://blazorrepl.com/repl/ckOBGDvj26S1LtXe41您也可以在此处尝试该代码段: https://blazorrepl.com/repl/ckOBGDvj26S1LtXe41

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM