当用户在文本框(oninput)中键入时,如何调用异步方法



每次对文本框进行更改时,我都想调用一个异步方法。

我已经看了一段时间了,现在在谷歌上搜索并尝试我找到的语法。下面的代码似乎是最准确的。

Razor页面代码:

<div class="offset-sm-5 col-sm-3">
<div class="input-group">
<input class="form-control" @oninput="@(async () => await OnSearchAsync())"/>
</div>
</div>

代码隐藏:

public class ListBase: ComponentBase
{
[Inject]
public IVpbDelegateAdminService VpbDelegateAdminService { get; set; }
protected VpbDelegateListVm VpbDelegateListVm { get; set; }
protected override async Task OnInitializedAsync()
{
VpbDelegateListVm  = await VpbDelegateAdminService.GetVpbDelegateListVmAsync(1);
}
protected async Task OnSearchAsync()
{
VpbDelegateListVm = await VpbDelegateAdminService.GetVpbDelegateListVmAsync(2);
}
}

如有任何帮助,我们将不胜感激。

您是否试图从代码背后调用方法?

如果是这样的话,这应该有效。

<div class="offset-sm-5 col-sm-3">
<div class="input-group">
<input class="form-control" @oninput="@OnSearchAsync"/>
</div>
</div>
@code
{
private async Task OnSearchAsync()
{
var data = await GetYourData();
}
}

我的解决方案是

@page "/Demo_domtree_input_typing"
@{ BlazorSession.Current["codename"] = "Demo_domtree_input_typing"; }
Your message :
<BlazorDomTree @ref="dt"></BlazorDomTree>
@code{
BlazorDomTree dt;
protected override void OnAfterRender(bool first)
{
if (!first)
return;
PlusControl inp1 = dt.Root.Create("input type='text'");
inp1.OnChanging(delegate
{
BlazorSession.Current.Toast("Your are typing '" + inp1.Value + "'", 1000, "typinginfo");
});
}
}

在线直播演示:http://demo.blazorplus.com/Demo_domtree_input_typing

(它需要导入并设置nuget包"BlazorPlus"(

相关内容

  • 没有找到相关文章

最新更新