我有一些代码,像这样:
<p:rowExpansion>
<p:datatable>
<p:ajax event="rowToggle" listener="methodCall()">
<p:column>
我的问题是rowToggle
事件正在rowExpansion
的打开和关闭时都调用侦听器。
是否只能在公开赛中调用事件?
答案 0 :(得分:3)
您需要创建一个以ToggleEvent
作为参数的侦听器。然后,您可以阅读该事件的Visibility
,以确定该行是打开还是关闭。
因此,您的侦听器方法应类似于:
public void onRowToggle(ToggleEvent event) {
if (event.getVisibility() == Visibility.VISIBLE) {
//...
}
}
并使用EL在XHTML中将其链接而不带括号:
<p:ajax event="rowToggle" listener="#{myBean.onRowToggle}"/>