【发布时间】:2020-07-17 15:04:29
【问题描述】:
我在 Blazor 项目中使用 Radzen Blazor Tree 组件。默认情况下,该组件带有一个事件监听器,用于单击RadzenTreeItem。我希望添加功能,例如单击RadzenTreeItem 和双击RadzenTreeItem 会对应用程序产生不同的更改。我正在考虑通过为 dblclick 事件侦听器使用 JSInterop 来实现这一点,但我知道这需要为每个 RadzenTreeItem 提供单独的 html id,我不知道如何为 RadzenTreeItem 创建唯一的 id,因为树具有动态大小。我的问题是如果每个项目都是在 RenderFragment 中创建的,如何为 RadzenTreeItem 创建唯一 ID,或者是否有更好的方法来允许双击功能?
以下是用于显示RadzenTreeItem 的C# RenderFragment 示例:
public static RenderFragment<RadzenTreeItem> TreeDesign = (RadzenTreeItem context) => builder =>
{
builder.OpenComponent<RadzenIcon>(0);
builder.AddAttribute(1, "Icon", "crop_16_9");
builder.CloseComponent();
builder.AddContent(4, context.Text);
};
以下是调用 RenderFragment 并创建树的 html 代码示例:
<RadzenTree Data="@entries" Change="@OnChange">
<RadzenTreeLevel Template="@TreeDesign" Text="@GetTextForNode" />
</RadzenTree>
【问题讨论】: