gpt4 book ai didi

c# - 单击生成的 html 组件调用方法

转载 作者:行者123 更新时间:2023-12-05 01:38:07 24 4
gpt4 key购买 nike

我是 Blazor 的新手,我正在尝试使用 RenderTreeBuilder 创建一个 HTML 片段。这个 block 基本上是一个 div,它应该在单击时调用一个方法并将其值存储在一个变量中。

AutocompleteListRender = builder =>
{
builder.OpenElement(0, "div");
builder.AddAttribute(0, "id", "input-autocomplete-list");
builder.AddAttribute(0, "class", "autocomplete-items");

foreach (string entry in Entries)
{
if (entry.ToLower().Contains(Value))
{
builder.OpenElement(1, "div");
builder.AddAttribute(1, "id", entry + "-autocomplete-list");
builder.AddAttribute(1, "onclick", /* Method to call */);
builder.AddAttribute(1, "value", @entry);

builder.AddContent(1, entry);

builder.CloseElement();
}
}

builder.CloseElement();
};

这里的问题是如何附加事件,因为我不能在这里使用@onclick。我想知道我在这里有哪些选择,因为我已经看到可以调用事件但我无法让它工作。

最佳答案

您需要使用 EventCallbackFactory调用一个方法。像这样:

builder.AddAttribute(1, "onclick", Microsoft.AspNetCore.Components.EventCallback.Factory.Create<Microsoft.AspNetCore.Components.UIMouseEventArgs>(this, YourMethod));

然后在同一个类中定义方法:

void YourMethod() {
// Your code here
}

关于c# - 单击生成的 html 组件调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60126759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com