使用 Javascript 防止在 p:tabView 中关闭选项卡
Prevent closing tab in p:tabView using Javascript
我需要防止在 tabView primefaces 中关闭选项卡,我知道我可以使用
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);
}
标签视图:
<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>
如果你想在托管 bean 中调用一个方法,你可以创建一个 p:remoteCommand
:
<p:remoteCommand name="yourRemoteCommand"
actionListener="#{yourBean.yourMethod}" />
这允许您在 Javascript 中使用 yourRemoteCommand()
,因此您可以使用:
onTabClose="yourRemoteCommand(); return false;"
如果需要给远程命令发送参数,见:
- Pass parameter to p:remoteCommand from JavaScript
我需要防止在 tabView primefaces 中关闭选项卡,我知道我可以使用
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);
}
标签视图:
<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>
如果你想在托管 bean 中调用一个方法,你可以创建一个 p:remoteCommand
:
<p:remoteCommand name="yourRemoteCommand"
actionListener="#{yourBean.yourMethod}" />
这允许您在 Javascript 中使用 yourRemoteCommand()
,因此您可以使用:
onTabClose="yourRemoteCommand(); return false;"
如果需要给远程命令发送参数,见:
- Pass parameter to p:remoteCommand from JavaScript