You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MudBlazor的MudAutoComplete:下拉样式无法应用到选中文本的问题求助

MudAutoComplete选中值样式同步解决方案

问题场景

使用MudBlazor的MudAutoComplete组件时,已为下拉列表项中括号内的文本设置了小字号样式,该样式在下拉列表中正常显示,但选中值后,输入框内的对应文本未应用该样式。当前通过ToStringFunc拼接ApplicationName和AppInfoId生成显示文本,无法为部分文本单独设置样式。

解决步骤

核心思路是通过自定义**输入框显示模板(InputTemplate)**替代ToStringFunc,让输入框内的选中值和下拉项使用相同的样式渲染逻辑:

1. 移除ToStringFunc配置

原代码中的ToStringFunc会生成纯文本,无法支持样式,因此需要删除该配置项。

2. 添加InputTemplate模板

新增InputTemplate属性,在模板内直接渲染选中对象的属性,并为括号内的文本设置样式,写法与下拉项的ItemTemplate保持一致:

修改后的完整代码

<MudAutocomplete T="ApplicationTable" Label="Enter Application ID or Name"
                 Style="margin-bottom:25px" Value="@values"
                 Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter" Margin="Margin.Dense"
                 SearchFunc="(string searchText) => SearchAutoComplete(searchText)"
                 AutoFocus="true" Clearable="true" ValueChanged="OnValueChanged"
                 Disabled="isDisableAutoComplete" ResetValueOnEmptyText="true" 
                 ItemSelectedTemplate="ItemSelectedTemplate"
                 ItemTemplate="ItemTemplate" 
                 InputTemplate="InputTemplate"
                 For="@(() => AppIdorName)" Required="true" RequiredError="App ID or Name is required!" />

<!-- 输入框选中值的显示模板 -->
<InputTemplate>
    @if (context != null)
    {
        <span>@context.ApplicationName <span style="font-size:0.8em;">(@context.AppInfoId)</span></span>
    }
</InputTemplate>

<!-- 下拉列表项模板(保留原有样式) -->
<ItemTemplate>
    <div>
        @context.ApplicationName <span style="font-size:0.8em;">(@context.AppInfoId)</span>
    </div>
</ItemTemplate>

<!-- 选中项的弹窗模板(可选,保持样式一致) -->
<ItemSelectedTemplate>
    <div>
        @context.ApplicationName <span style="font-size:0.8em;">(@context.AppInfoId)</span>
    </div>
</ItemSelectedTemplate>

效果说明

  • 下拉列表中括号内的文本样式保持生效
  • 选中值后,输入框内的括号内文本会自动应用相同的小字号样式,实现样式统一

内容的提问来源于stack exchange,提问作者Sapri s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 23:34:58