![](/img/trans.png)
[英]Blazor - stopPropagation on event for dynamically created DOM with RenderTreeBuilder
[英]Blazor pass variable and call event from .razor on a html created using RenderTreeBuilder on a C# class
我正在使用 Blazor 創建樹結構,我需要獲取單擊的節點的值並將其發送到視圖上的 function 以將其從樹中刪除。
這是生成樹的 C# 代碼:
二叉樹服務.cs
public void PreOrderTraversal(RenderTreeBuilder builder, BinaryTreeNode node)
{
if (node != null)
{
//Some Code
builder.OpenElement(2, "a");
builder.AddAttribute(2, "href", "javascript: void(0)");
builder.AddAttribute(2, "value", node.Value);
builder.AddAttribute(3, "onclick", EventCallback.Factory.Create(this, -->Remove(value)<--));
builder.AddContent(2, node.Value);
builder.CloseElement();
PreOrderTraversal(builder, node.Left);
PreOrderTraversal(builder, node.Right);
//Some Code
}
}
-->Remove(value)<-- 我想調用 function 並傳遞一個值。
BinaryTree.razor
public void Remove(int value)
{
//remove
}
我怎樣才能實現它? 我知道如何在 .cs 中調用 function,但我不知道如何在 .razor 中調用一個,我也不知道如何使用這種方法從錨標記中獲取值。
我使用這個簡單的代碼,但我使用 razor 組件不使用元素。
我的按鈕.razor
@code {
[Parameter]
public int Value {get;set;}
[Parameter]
public EventCallback<int> AnswerEvent { get; set; }
public void PressButtonOk()
{
AnswerEvent.InvokeAsync(Value);
}
}
<div @onclick="PressButtonOk">OK</div>
我的代碼.cs
public void PreOrderTraversal(RenderTreeBuilder builder, BinaryTreeNode node)
{
if (node != null)
{
builder.OpenControl(0, "mybutton");
builder.AddAttribute(0, "Value", node.Value);
builder.AddAttribute(0, "onclick", EventCallback.Factory.Create<int>(this, Remove(value)));
builder.CloseControl();
}
}
public void Remove(int value) { }
祝你好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.