Расширьте компонент AspNetCore InputTextArea, чтобы добавить строки - PullRequest
0 голосов
/ 05 мая 2019

Я хотел бы расширить InputTextArea Компонент aspnet-core, чтобы добавить поддержку строк и использовать ее на бритвенных страницах.

То, как я думал об этом, - создать новый класс и наследовать от InputBase<string> и добавить атрибут rows, но я не знаю, как реализовать его дальше.

public class TextAreaWithRows : InputBase<string>
{

    protected override void BuildRenderTree(RenderTreeBuilder builder)
    {
        builder.OpenElement(0, "textarea");
        builder.AddAttribute(1, "id", Id);
        builder.AddAttribute(2, "class", CssClass);
        builder.AddAttribute(3, "value", BindMethods.GetValue(CurrentValue));
        builder.AddAttribute(4, "onchange", BindMethods.SetValueHandler(__value => CurrentValue = __value, CurrentValue));
        builder.AddAttribute(5, "rows", );
        builder.CloseElement();
    }

    protected override bool TryParseValueFromString(string value, out string result, out string validationErrorMessage)
    {
        result = value;
        validationErrorMessage = null;
        return true;
    }
}

1 Ответ

0 голосов
/ 08 мая 2019

Добавление свойства параметра для строк в класс.

public class TextAreaWithRows : InputBase<string> {

    //For Attributes
    [Parameter] public int Rows { get; set; }

    //For Events 
    [Parameter] public Action OnInput { get; set; }

    protected override void BuildRenderTree(RenderTreeBuilder builder)
    {
        builder.OpenElement(0, "textarea");
        builder.AddAttribute(1, "id", Id);
        builder.AddAttribute(2, "class", CssClass);
        builder.AddAttribute(3, "value", BindMethods.GetValue(CurrentValue));
        builder.AddAttribute(4, "onchange", BindMethods.SetValueHandler(__value => CurrentValue = __value, CurrentValue));
        builder.AddAttribute(5, "rows", Rows);
        builder.AddAttribute(6, "oninput", EventCallback.Factory.Create<UIEventArgs>(this, OnInput));
        builder.CloseElement();
    }

    protected override bool TryParseValueFromString(string value, out string result, out string validationErrorMessage)
    {
        result = value;
        validationErrorMessage = null;
        return true;
    }
}
...