p:rowExpansion调用rowToggle事件仅在打开时

时间:2019-02-19 08:52:05

标签: primefaces

我有一些代码,像这样:

<p:rowExpansion>
   <p:datatable>
      <p:ajax event="rowToggle" listener="methodCall()">
      <p:column>

我的问题是rowToggle事件正在rowExpansion的打开和关闭时都调用侦听器。

是否只能在公开赛中调用事件?

1 个答案:

答案 0 :(得分:3)

您需要创建一个以ToggleEvent作为参数的侦听器。然后,您可以阅读该事件的Visibility,以确定该行是打开还是关闭。

因此,您的侦听器方法应类似于:

public void onRowToggle(ToggleEvent event) {
  if (event.getVisibility() == Visibility.VISIBLE) {
    //...
  }
}

并使用EL在XHTML中将其链接而不带括号:

<p:ajax event="rowToggle" listener="#{myBean.onRowToggle}"/>