每次对文本框进行更改时,我都想调用一个异步方法。
我已经看了一段时间了,现在在谷歌上搜索并尝试我找到的语法。下面的代码似乎是最准确的。
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"(