MyCustomControl.razor
<input type="text" id="@id" />
@code {
[Parameter]
public string id { get; set; }
}
Test.Razor
@page "/test"
<button @onclick="@addCompoment">add text box</button>
<div class="simple-list-list">
@if (componentListTest == null)
{
<p>You have no items in your list</p>
}
else
{
<ul>
@foreach (var item in componentListTest)
{
@item<br/>
}
</ul>
}
</div>
@functions {
private List<RenderFragment> componentListTest { get; set; }
private int currentCount { get; set; }
private string TxtExample { get; set; }
protected void OnInit()
{
currentCount = 0;
componentListTest = new List<RenderFragment>();
}
protected void addCompoment()
{
if(componentListTest==null)
{
componentListTest = new List<RenderFragment>();
}
componentListTest.Add(CreateDynamicComponent(currentCount));
currentCount++;
}
RenderFragment CreateDynamicComponent(int counter) => builder =>
{
try
{
var seq = 0;
builder.OpenComponent(seq, typeof(MyCustomControl));
builder.AddAttribute(++seq, "id", "listed-" + counter);
builder.CloseComponent();
}
catch (Exception ex)
{
throw;
}
};
}
После динамического добавления текстового поля, как получить все входные данные из текстового поля (после нажатия кнопки отправки). Как взаимодействовать с динамическим компонентом и получить значение. MyCustomControl - это компонент, добавляемый на страницу Test Razor. для этих компонентов создайте атрибут, например значение привязки, чтобы получить данные поля ввода, предоставленные пользователем