c# - 如何更新输入的 Datalist 而不会失去对 Blazor 中输入的关注?
问题描述
这是在 Blazor 服务器中。我正在尝试构建一个搜索功能,该功能从输入的第三个字符开始搜索数据库,因此在页面加载时数据列表为空,并且应在用户开始输入时填充。
我从数据库收到的列表已填充,页面确实通过 foreach 循环在 datalist 中构建选项,但 datalist 不会显示自己(并且在浏览器调试器中也无法查看),直到焦点丢失输入元素并重新获得(按转义键是我通常做的)。
我能够使这项工作/显示数据的唯一方法是数据列表的显示是否可见,这不会导致下拉列表,并且如果我在页面初始化时从数据库中预拉所有数据,这不起作用我不想每次加载页面时都从数据库中提取所有元素。
还等待对数据库的调用。
输入和数据列表代码:
<datalist id="txtSearch">
@foreach (var item in this.facilities)
{
<option value="@item.Name"/>
}
</datalist>
<input autocomplete="on" type="text" list="txtSearch" @oninput="@Search" @onchange="@GetFacility"/>
如果需要更多信息,我可以提供。谢谢你。
解决方案
我现在无法测试它,但 Blazor 有一个焦点方法。也许尝试类似:
<input @ref="MyList" autocomplete="on" type="text" list="txtSearch" @oninput="@Search" @onchange="@GetFacility"/>
@code {
ElementReference MyList {get; set;}
async Task SomeAsyncMethod(){
// Load stuff
MyList.FocusAsync();
}
}
推荐阅读
- reactjs - React hooks 可编辑数据表架构?
- powershell - JAMS Scheduler - 从命令行设置未计划作业的参数
- javascript - 我如何使用 vue 和 nodejs 上传超过 500 个文件,每个 512kb
- bootstrap-5 - Bootstrap 5 下拉插入符号位置
- web2py - 评估字符串类型字段中的值
- python - Airflow CLI Trigger_dag 抑制警告
- c# - 寻找 Excel HTTP 响应标头的文档
- show-hide - 为请求完成付款后,我想要 Autohide Row 的脚本
- c# - 我有一些概念,这些概念有概念子。所有这些插入在一起
- python - Discord.py 自动删除机器人命令