自定义Blazor选择选项-不从绑定值中选择初始项目

时间:2020-05-01 15:04:37

标签: html-select blazor custom-component

在创建自定义组件时,我想使用自定义Option组件扩展Select,以便可以添加额外的参数等。

对此的简化版本:

<option value="@value">@ChildContent</option>   

@code {
    [Parameter] public RenderFragment ChildContent { get; set; }
    [Parameter] public string value { get; set; }
 }

我正在使用与选项标签完全相同的方式使用组件,并且在html方面,代码呈现的方式完全相同。

看起来一切正常,但不进行初始绑定,例如顶部选项始终处于选中状态,但仅是可见的-值是空字符串。

2 个答案:

答案 0 :(得分:1)

您只需要创建具有此类内容的自定义剃刀组件-> CustomOption.razor

    <option value="@value" class="@specAttribute">@ChildContent</option>

@code {
    [Parameter] public RenderFragment ChildContent { get; set; }
    [Parameter] public string value { get; set; }
    [Parameter] public string specAttribute { get; set; }
}

然后使用它:

<InputSelect  @bind-Value="@language">
    <CustomOption value="English" specAttribute="list-item">English</CustomOption>
    <CustomOption value="Spanish" specAttribute="list-item">Spanish</CustomOption>
</InputSelect>

答案 1 :(得分:0)

经过进一步调查,已将其确定为错误。

链接到GitHub dotnet / aspnetcore上的两个问题:

elements inserted dynamically during same diff as don't get auto-selected #21453

Blazor: Dynamic not setting selected value #21432