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

Blazorise DataGrid下拉框无法保留选中值问题求助

Blazor DataGrid下拉框选中值无法保留的解决方法

你的问题核心是没有将下拉框的选中值与实体字段绑定,也未处理选中后的赋值逻辑,修改方案如下:

修改后的代码

<DataGridColumn TItem="CarTable" Field="@nameof(CarTable.ManualOrAutomatic)" Caption="Status" Editable>
    <EditTemplate Context="context">
        <Dropdown @bind-Visible="isDropdownOpen">
            <DropdownToggle>
                <!-- 动态显示当前选中值,无选中时显示默认提示 -->
                @(string.IsNullOrEmpty(context.ManualOrAutomatic) ? "Select transmission" : context.ManualOrAutomatic)
            </DropdownToggle>
            <DropdownMenu>
                <!-- 点击时赋值给当前实体字段,并关闭下拉框 -->
                <DropdownItem @onclick="() => { context.ManualOrAutomatic = "Manual"; isDropdownOpen = false; }">
                    Manual
                </DropdownItem>
                <DropdownDivider />
                <DropdownItem @onclick="() => { context.ManualOrAutomatic = "Automatic"; isDropdownOpen = false; }">
                    Automatic
                </DropdownItem>
            </DropdownMenu>
        </Dropdown>
    </EditTemplate>
</DataGridColumn>

关键修改说明

  • 绑定编辑上下文:通过EditTemplate Context="context"获取当前编辑的CarTable实例,所有操作基于该实例同步数据。
  • 动态展示选中状态:DropdownToggle不再用固定文本,而是根据context.ManualOrAutomatic的值动态显示,用户能直观看到当前选择。
  • 处理选中赋值:给每个DropdownItem添加@onclick事件,点击时直接将选中字符串赋值给实体字段,同时通过绑定的isDropdownOpen变量关闭下拉框。
  • 添加状态变量:需要在组件代码中声明private bool isDropdownOpen = false;,用于控制下拉框的展开/收起状态。

修改后,选中值会同步到当前编辑的CarTable对象中,DataGrid将正确保留选中状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:54:23