gpt4 book ai didi

c# - 如果在foreach循环下动态生成Textarea不止一次,如何在Razor(blazor)组件中获取Textarea值

转载 作者:行者123 更新时间:2023-12-04 04:20:47 25 4
gpt4 key购买 nike

如果在 foreach 循环下动态生成的 Textarea 不止一次,任何人都可以帮助从 Razor 组件获取 Textarea 值。

我试过 @bind-Value and value但仍然无法单独获取所有 Textareas 值。

Razor component code
<EditForm Model="@userans" OnValidSubmit="@oninput">
<DataAnnotationsValidator />
<h3>Test </h3>


@if (Questiontable == null)
{

<p><em>Loading...</em></p>
}
else
{
<table class="table">
<thead>
<tr>
</tr>
</thead>
<tbody>
@foreach (var item in Questiontable[0].Questiondata)
{
<tr>
<td>@item.Question</td>
</tr>
<tr>
<th>
**<textarea id="TextArea1" rows="2" cols="20" @bind="@userans.answers"></textarea>**
</th>
</tr>
}
</tbody>
</table>
<div align="center">
<button class="btn btn-primary" type="submit" @onclick="btnnextclick">Next</button>
</div>
}
</EditForm>

Razor 组件正在加载来自数据库的数据并生成与数据库记录一样多的 Textarea,但一旦我更新 Textarea,我需要获取不同 Textarea 中可用的所有值。

最佳答案

任何时候你想根据输入的动态数量来获取输入,你应该实例化一个数组或列表。
然后,对于生成标记的循环中的每次迭代,将一个实例添加到列表中,然后将输入绑定(bind)到数组中输入实例的索引值。

我以前没有使用过 blazor,所以请不要在语法上引用我,但这个一般的想法应该是你正在寻找的:

@{
List<string> myInputs = new List<string>();
}
@for (int i = 0; i < Questiontable[0].Questiondata.length; i++){
myInputs.Add(string.Empty);
<th>
<textarea id="TextArea" rows="2" cols="20" @bind="@myInputs[i]"></textarea>
</th>

}

希望这对你有帮助!

关于c# - 如果在foreach循环下动态生成Textarea不止一次,如何在Razor(blazor)组件中获取Textarea值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59411946/

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