【发布时间】:2022-09-22 20:52:00
【问题描述】:
我想按照以下步骤创建组件:
- 我有一个项目清单。
- 我想在这个列表中循环并创建一个像
InputNumber这样的组件。
- 将
EventCallback添加到接受此Inputtext的ref的泛型创建的InputNumber中,因为我想使用此ref将焦点设置在此InputNumber上。 - 我还有
onblure方法可以为我执行一些代码,我使用onfocus在onblure执行此代码后将焦点返回到输入
我的问题我怎样才能得到这个ref 并将其作为EventCallback 的参数发送?
这里的问题是这个组件是循环生成的,所以我不想手动创建一百个变量来代表ref\'s。
我的概念代码是这样的:
@code{
private void OnFocus(MyInputNumber<double?> obj)
{
if (obj is not null)
{
obj!.Element.Value.FocusAsync();
}
}
}
@foreach(var MyItem in MyList)
{
<EditForm Model=\"MyItem\">
//Some components ..
<label>
Test
<InputNumber @bind-Value=\"MyItem.MyVal\"
@onfocus=\"@((InputNumber<double?> obj @*wrong*@) =>
OnFocus(obj))\"
@onblur=@(() => OnblureHandler(context))
</label>
</EditForm>
}
如果你看到参数InputNumber<double?> obj,这种方式是错误的,通常我使用@ref=SomeVariable,但是因为我是用通用方式创建的,所以我不能这样做。
笔记:
我不会将我的列表调整为dictionary<MYItemType,InputNumber<double?>>,我正在寻找另一种方式!
-
当
InputNumber专注时,你想关注什么? -
@DimitrisMaragkos,感谢您查看问题,实际上我有另一种方法
Onblure与OnFocus一起使用,我想再次将焦点返回到输入!
标签: c# asp.net-core blazor blazor-server-side