首页 > 解决方案 > Blazor 中的程序元素引用

问题描述

我正在尝试制作一个任务显示页面,它将每个任务摘要显示到表格的一行中,如果您单击其中一行,它会展开显示任务详细信息的行。

因为任务的数量不是静态的,所以我必须使用程序逻辑来显示所有任务(它只是进入一个for循环,没什么太壮观的。)

但是,由于程序逻辑的原因,当我的行通过一个循环时,我不能真正为它制作一些静态标识符,我需要知道我点击了哪一行才能知道要扩展什么。

我应该怎么做才能确定我点击了哪一行?我接受任何解决方案,无论是仅使用 C# 还是使用 JS Interop。

标签: c#asp.netblazorblazor-server-side

解决方案


将对象传递给onclick事件处理程序

@foreach(var item in items)
{
   <tr @onclick="() => OnRowClicked(item)">
...
   </tr>
}
@code {
   private void OnRowClicked(Item item)
   {
      Expand(item);
   }
}

推荐阅读