动态生成控件

  • 本文关键字:控件 动态 c# blazor
  • 更新时间 :
  • 英文 :


我有一个foreach循环,我需要创建一个按钮,允许用户获取特定位置的地址。问题是,当生成页面时,如果单击"任何"按钮,它们都会显示弹出窗口。

@foreach (var schedule in _schedules) {
<BSButton Id="popover1" onclick="onclick1">@schedule.Location.NickName</BSButton>
<BSPopover Target="popover1" IsOpen="@IsOpen1" Placement="Placement.Top">
<BSPopoverHeader>@schedule.Location.Name</BSPopoverHeader>
<BSPopoverBody>@schedule.Location.Address</BSPopoverBody>
</BSPopover>
}

同一页顶部的代码

@code {
bool IsOpen1 { get; set; }
void onclick1(MouseEventArgs e)
{
IsOpen1 = !IsOpen1;
StateHasChanged();
}
}

我很难弄清楚如何生成这种类型的控件。我知道问题是所有控件的onclick都是一样的。即使我在onclick=@popoverTextId";,如何在@code{}中动态创建代码

我会假设Schedule有一个Id。否则,即兴创作一些东西。

<BSButton @onclick="() => onclick1(schedule.Id)"> ... </BSButton>
....  IsOpen="@(schedule.Id == SelectedId)" ...
void onclick1(int scheduleId)
{
SelectedId = scheduleId;
//StateHasChanged();
}

相关内容

  • 没有找到相关文章

最新更新