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
相关产品推荐
相关产品推荐

