处理Razor Pages中的onfocus事件

时间:2019-12-18 16:43:25

标签: razor-pages blazor-server-side

我有<textarea />行,并且想处理onfocusonblur事件并传递行数据。根本无法正常工作。

<div>
  @foreach (Person p in People){
    <textarea rows="4" onfocus="@hasFocus(p)" onblur="@lostFocus(p)">p.Name</textarea>
  }
</div>
  public void hasFocus(Person p) {
    ...
  }

事件没有触发。

2 个答案:

答案 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参数。