如何在Blazor的MudDataGrid中通过行ID删除指定行
如何通过行ID删除Blazor MudDataGrid中选中的单条记录?
你的核心问题是当前删除逻辑用ItemName作为筛选条件,导致同名记录被批量删除。只需改成基于实体的唯一标识字段(比如Id/ItemId)筛选即可,步骤如下:
确认实体的唯一标识字段
确保你的Menuitemlist实体包含唯一标识属性(比如Id、ItemId这类每个记录独有的字段,这是数据库实体的标准设计)。修改删除方法的筛选逻辑
将RemoveItem方法中基于ItemName的筛选,替换为基于唯一标识的判断:
原代码:
private void RemoveItem(Menuitemlist x) { orderitems = orderitems.Where(u => u.ItemName != x.ItemName).ToList(); Elements = orderitems; StateHasChanged(); }
修改后代码(假设唯一标识字段是Id,请替换为你实际的字段名):
private void RemoveItem(Menuitemlist x) { // 仅删除与当前点击记录ID匹配的项 orderitems = orderitems.Where(u => u.Id != x.Id).ToList(); // 也可以用RemoveAll简化写法:orderitems.RemoveAll(u => u.Id == x.Id); Elements = orderitems; // StateHasChanged(); // 同步操作下Blazor会自动触发UI更新,可按需保留 }
- 原理说明
唯一标识字段是每条记录的专属标记,用它作为筛选条件只会匹配你点击的那一行数据,彻底避免同名记录被误删的问题。
内容的提问来源于stack exchange,提问作者Danul Hivi Vihan
相关产品推荐
相关产品推荐

