Blazor Simple Arithmeti c Пример - PullRequest
0 голосов
/ 10 апреля 2020

Я сделал пример, чтобы выучить Блазор. Пример - умножить вес и центр тяжести, чтобы получить момент.

Цель состоит в том, чтобы выполнить вычисление при изменении веса или центра тяжести. Я получаю следующую ошибку.

Атрибут 'onchange' используется два или более раз для этого элемента. Атрибуты должны быть уникальными (без учета регистра). Атрибут «onchange» используется атрибутом директивы «@bind».

Можете ли вы помочь мне достичь цели?

 <h3>MomentBasicCalc</h3>

<div class="container">
    <div class="row">
        <div class="col-sm">
            <label for="weight">Weights</label>
            <input type="text" class="form-control" id="weight"
                   @onchange="Calc"  @bind="@Weight" />
        </div>
        <div class="col-sm">
            <label for="CG">CG</label>
            <input type="text" class="form-control" id="CG"
                    @onchange="Calc" @bind=@Cg />
        </div>
        <div class="col-sm">
            <label for="Moment">Moment</label>
            <input type="text" class="form-control" id="Moment" value=@Moment readonly />
        </div>
    </div>
</div>



@code {
    public double Weight { get; set; }
    public double Cg { get; set; } 
    public double Moment { get; set; }

    void Calc()
    {

        Moment = Weight * Cg;

    }
}

1 Ответ

1 голос
/ 10 апреля 2020

Не поддерживается подключение нескольких обработчиков событий к одному событию. Вы должны сделать что-то вроде этого:

<div class="container">
        <div class="row">
            <div class="col-sm">
                <label for="weight">Weights</label>
                <input type="text" class="form-control" id="weight"
                       **value="@Weight**
                       @onchange="SetWeight"  "/>
            </div>
            <div class="col-sm">
                <label for="CG">CG</label>
                <input type="text" class="form-control" id="CG"
                        **value=@Cg**
                        @onchange="SetCG"  />
            </div>
            <div class="col-sm">
                <label for="Moment">Moment</label>
                <input type="text" class="form-control" id="Moment" value=@Moment readonly />
            </div>
        </div>
    </div>

@code
{
    void SetWeight(UIChangeEventArgs e)
        {
            Weight = (string) e.Value;
            Calc();
        }

    void SetCG(UIChangeEventArgs e)
        {
            CG = (string) e.Value;
            Calc();
        }

}
...