ca9*_*3d9 5 c# razor blazor blazor-server-side
我有以下代码。
<input id="search" type="text" @bind="Search" @onkeypress="SearchChanged" />
@code {
string Search;
void SearchChanged()
{
var s = Search; // Search is always one character behind
}
}
Run Code Online (Sandbox Code Playgroud)
在文本框中键入内容将触发该功能SearchChanged。但是,它获得的值始终是键入文本之前的一个字符。例如,在 中设置断点SearchChanged,
搜索的键入值 ===================== 一个空值 阿卜阿 abc ab abcd abc
顺便说一句,该功能@onkeypress在互联网浏览器中不起作用?
尝试将代码更改为
<input id="search" type="text" @bind="Search" />
@code {
string search;
string Search
{
get { return search; }
set {
search = value;
ResultList = GetNewList(search).Result.ToList();
}
}
void SearchChanged()
{
var s = Search; // Search is always one character behind
}
}
Run Code Online (Sandbox Code Playgroud)
我在 中设置了一个断点set { },但是,在输入文本框时,断点只被击中一两次?
您正在寻找@bind-value:event:
<input id="search"
type="text"
@bind-value="Search"
@bind-value:event="oninput"
/>
@code {
string search;
string Search
{
get { return search; }
set {
search = value;
ResultList = GetNewList(search).Result.ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
引用数据绑定文档:
除了使用 @bind 语法处理 onchange 事件之外,还可以通过使用事件参数 (@bind-value:event) 指定 @bind-value 属性来使用其他事件绑定属性或字段。
| 归档时间: |
|
| 查看次数: |
1793 次 |
| 最近记录: |