Html select 自定义Blazor选择选项-不从绑定值中选择初始项
在创建自定义组件时,我想用自定义选项组件扩展Select,以便添加额外的参数等 简化版:Html select 自定义Blazor选择选项-不从绑定值中选择初始项,html-select,blazor,custom-component,Html Select,Blazor,Custom Component,在创建自定义组件时,我想用自定义选项组件扩展Select,以便添加额外的参数等 简化版: <option value="@value">@ChildContent</option> @code { [Parameter] public RenderFragment ChildContent { get; set; } [Parameter] public string value { get; set; } } @ChildContent @代
<option value="@value">@ChildContent</option>
@code {
[Parameter] public RenderFragment ChildContent { get; set; }
[Parameter] public string value { get; set; }
}
@ChildContent
@代码{
[参数]公共RenderFragment ChildContent{get;set;}
[参数]公共字符串值{get;set;}
}
我使用组件的方式与选项标记完全相同,在html方面,代码呈现方式完全相同
这一切看起来都很好,但没有进行初始绑定,例如,始终选择顶部选项,但只能看到-值为空字符串。您只需创建自定义razor组件->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; }
}
@ChildContent
@代码{
[Parameter]public renderFroment子内容{get;set;}
[参数]公共字符串值{get;set;}
[参数]公共字符串specAttribute{get;set;}
}
然后使用它:
<InputSelect @bind-Value="@language">
<CustomOption value="English" specAttribute="list-item">English</CustomOption>
<CustomOption value="Spanish" specAttribute="list-item">Spanish</CustomOption>
</InputSelect>
英语
西班牙的
进一步调查后,这被确定为一个bug
指向GitHub dotnet/aspnetcore上两个问题的链接:
像这样使用@key@ChildContent@AliBorjian不幸的是,这不起作用。仍然未定义,显示顶部选项这与我原来的帖子中的代码相同。问题不是自定义选项标记,而是它没有绑定初始值。如果您创建两次select(一个带有选项,一个带有自定义选项),并将语言设置为“西班牙语”,则标准select将是正确的,但自定义select将显示英语(它甚至没有设置为英语,它只是列表的顶部)