我有<textarea />
行,并且想处理onfocus
和onblur
事件并传递行数据。根本无法正常工作。
<div>
@foreach (Person p in People){
<textarea rows="4" onfocus="@hasFocus(p)" onblur="@lostFocus(p)">p.Name</textarea>
}
</div>
public void hasFocus(Person p) {
...
}
事件没有触发。
答案 0 :(得分:1)
使用@onfocus和@onblur
<textarea rows="4" @onfocus="hasFocus" @onblur="lostFocus">p.Name</textarea>
和
public void hasFocus(FocusEventArgs args)
{
}
public void lostFocus(FocusEventArgs args)
{
}
如果仅使用onfocus,它将是html属性,而不是事件监听器。
要传递人物对象,您需要执行以下操作
@onfocus="(args) => hasFocus(p)"
答案 1 :(得分:0)
这对我有用:
<div>
@foreach (Person p in People){
<textarea rows="4"
@onfocus="@( () => hasFocus(p) )"
@onblur="@( () => lostFocus(p) )">
p.Name
</textarea>
}
</div>
根据docs,事件属性名称为@on {eventname}。 然后使用lambda传递您的person参数。