Man*_*ish 3 javascript jquery jsf primefaces
我正在使用 Prmefaces 3.5。我在数据表中使用 RowToggler。每当单击 RowToggle 按钮时,我都会执行一些数据库访问操作并显示包含所访问数据的网格。
每当单击切换按钮时,都会调用下面的侦听器,在其中完成操作
<p:ajax event="rowToggle" listener="#{controller.onRowToggle}"
Run Code Online (Sandbox Code Playgroud)
但问题就出在这个方法的调用上。不仅在展开行时调用此方法,还在折叠行时调用此方法。折叠行时不需要完成数据库操作,因此这是一项昂贵的操作。
请建议如何知道该行是展开还是折叠,以便我可以有条件地执行操作?
您是否尝试过ToggleEvent#getVisibility()在侦听器中使用方法?这是例子:
public void onRowToggle(ToggleEvent event) {
if (event.getVisibility() == Visibility.VISIBLE) {
// your code here
}
}
Run Code Online (Sandbox Code Playgroud)
如果您只想在扩展行时才进行 RT ,则可以使用以下方法:
<p:ajax
event="rowToggle"
onstart="return cfg.ext.params[0].name.indexOf('_rowExpansion') != -1"
listener="#{fooViewModel.onRowToggle}"
/>
Run Code Online (Sandbox Code Playgroud)