Как включить / отключить входы в Blazor - PullRequest
2 голосов
/ 05 марта 2019

Я пытаюсь Enable/Disable группа time входов в Blazor на основе checkbox; в то время как для inputs типа button нижеприведенное решение работает, для входов типа time это не так:

Решение для кнопочного ввода, которое работает

<button type="button"
    class="@this.SetButton">
</button>

[Parameter] public bool state{get;set;} 
public string SetButton() {
       string result = state == true ? "" : "disabled";
       return result;
}

Попытка ввода времени, которая не работает

<input bind="@IsDisabled" type="checkbox" />

<input class="@this.GetGroupState()"  type="time" />


 protected bool IsDisabled { get; set; }
 public string GetGroupState() {
            return this.IsDisabled ? "disabled" : "";
        }

P.S В первом сценарии bool является параметром другого component, поэтому я не связываю его. Во втором случае, однако, он связан с checkbox

1 Ответ

5 голосов
/ 05 марта 2019

Чтобы отключить элементы, вы должны использовать атрибут disabled .

Я немного изменил ваш код, и он будет делать то, что вам нужно. Blazor автоматически добавит или удалит атрибут disabled на основе значения IsDisabled.

Вы также должны использовать атрибут disabled на своей кнопке. Это гораздо лучшая практика.

<button type="button" disabled="@IsDisabled"></button>
<input bind="@IsDisabled" type="checkbox" />

<input disabled="@IsDisabled" type="time" />

@functions {
    protected bool IsDisabled { get; set; }
}

Вы все еще можете комбинировать это с применением класса CSS для стилизации отключенного элемента. Это зависит от вас.

...