从列表中删除项目会弄乱列表中的其余项目

时间:2020-09-06 15:33:21

标签: c# html blazor blazor-server-side

我在blazor中有一个html表,它填充了列表的循环(减少了列以显示相关代码)

mail:   
  host: mail.example.com
  port: 587
  username: support@example.com
  password: ************
  properties:
    mail:
      smtp:
        auth: true
        starttls:
          enable: true

当我从表格中删除某行时,其他行中选择的项目也会更改。

  • 我尝试使用数组代替列表,但这无济于事。
  • 试图使用Linq和RemoveAt()更改removerow()方法。不会改变结果。

在删除带有产品“铅笔”的行之前: 1

取出产品“铅笔”后: 2

1 个答案:

答案 0 :(得分:2)

您的代码段不包含<tr>元素。它必须在foreach()内部的第一层。您可以通过指定键来帮助渲染:

@foreach (var line in lines)
{
   <tr @key="@line">
   ... 
   </tr>
}

我认为这可以解决消失的Pen项目,请尝试。

在旁注中,您可以简化删除过程:

  @onclick="@(() => lines.Remove(line))">


// private async Task removeRow(int linenumber)
// {
//     lines = lines.Where(u => lines.IndexOf(u) != linenumber).ToList());
// }
相关问题