我需要阻止tabView primefaces中的tab关闭,我知道我可以使用
onTabClose="return false;"
问题是我不想关闭标签但是我想在点击关闭时采取行动。当我使用onTabClose="return false;"
时,不会调用<p:ajax event="tabClose" listener="#{bean.onTabClose}" update=":growls:mainGrowls"/>
。
如何阻止标签关闭来自bean的交叉点击和调用功能?
我可以以某种方式阻止此方法的关闭吗?
public void onTabClose(TabCloseEvent event) {
FacesMessage msg = new FacesMessage("Tab Closed", "Closed tab: " + event.getTab().getId());
FacesContext.getCurrentInstance().addMessage(null, msg);
}
TabView的:
<p:tabView id="tabView" activeIndex="0" style="height: 100%;" onTabClose="return false;">
<p:ajax event="tabClose" listener="#{bean.onTabClose}" update=":growls:mainGrowls"/>
<p:tab title="#{tabTitle}" closable="false" >
<div style="height: 100%; background: #efefef !important">
<ui:insert name="tab" />
</div>
</p:tab>
<p:tab title="" closable="true" id="">
</p:tab>
</p:tabView>
答案 0 :(得分:1)
如果要在托管bean中调用方法,可以创建p:remoteCommand
:
<p:remoteCommand name="yourRemoteCommand"
actionListener="#{yourBean.yourMethod}" />
这允许您在Javascript中使用yourRemoteCommand()
,因此您可以使用:
onTabClose="yourRemoteCommand(); return false;"
如果需要将参数发送到远程命令,请参阅: