c# - 使用 blazor 将用户输入的字符串添加到列表中
问题描述
我的任务是使用 blazor 将用户从表单输入的字符串添加到字符串列表中。据我所知,您无法绑定值列表,因为它只接受类型字符串。
由于我只能将一个值绑定到文本框,因此我无法拥有多个可以进入列表的用户输入。
有没有一种方法可以让我将用户输入输入到列表中,然后将更多用户输入输入到同一个列表中,但只使用分配给 bind-Value 参数的一个变量?
解决方案
您需要手动从输入中获取项目并将它们添加到列表中。
实现此目的的一种方法是使用监听特定的 Key 事件@onkeydown
。
在下面的示例中,每当用户按下时,Enter
我们都会将输入的任何内容Input
添加到列表中,然后清除输入以便用户可以输入更多项目。
@page "/"
<input @bind-value="UserInput" @bind-value:event="oninput" @onkeydown="CheckInput"></input>
<h2>My List</h2>
@foreach (var item in myList)
{
<h3>@item</h3>
}
@code {
private string UserInput { get; set; }
public List<string> myList = new List<string> { "ItemOne" };
private void CheckInput(KeyboardEventArgs keyEvent)
{
if(keyEvent.Key == "Enter")
{
AddToList(UserInput);
UserInput = string.Empty;
}
}
private void AddToList(string str)
{
myList.Add(str);
}
}
推荐阅读
- jquery - 选项卡和独立滚动位置
- html - HTML图像中属性和替代之间的区别
- node.js - 在更新期间省略集合中具有 null 的元素
- protractor - 使用 https 协议连接到本地服务器时量角器握手失败
- internet-explorer-11 - 将 SPFx Webpart 与 IE11、SharePoint 2016 和 Pannellum 一起使用
- reactjs - componentDidUpdate 转换为 Hooks
- c# - 如何使用线程任务改进代码和丢失的记录
- postgresql - 如何在复制命令PSQL中将变量添加到路径字符串中
- c - 函数调用和堆栈重用的堆栈使用
- linux - 从源代码构建notepadqq时出错