我想使用< p:commandButton > 停用< p:tab >
File.xhtml
<h:form id="tabUserModule">
<p:tabView value="#{listModule.toArray()}" var="car" id="tabView1" widgetVar="delg1">
<p:tab title="#{car[0].module}" id="styleChoix" disabled="#{disableTag.disableTa}" >
<p:tabView orientation="left" >
<p:tab title=" Prototype " >
<h:panelGrid >
<p:commandButton value="Disable" oncomplete="delg1.select(0)"
action="#{disableTag.buttonAction}" update=":tabUserModule:tabView1:styleChoix"/>
.....
Bean.java
@ManagedBean
@ViewScoped
public class DisableTag implements Serializable {
private static final long serialVersionUID = 7179479455651980518L;
private boolean disableTa=false;
public boolean isDisableTa() {
return disableTa;
}
public void setDisableTa(boolean disableTa) {
this.disableTa = disableTa;
}
public void buttonAction()
{
disableTa = true;
}
}
但是当我执行此代码时,所有选项卡都被禁用,那么我该如何解决这个问题呢?
我想停用橙色
包围的标签答案 0 :(得分:0)
您应将更新
更新update=":tabUserModule:tabView1"
仅代替原作&#34; :tabUserModule:tabView1:styleChoix &#34;
这意味着您必须更新整个p:tabView元素而不是仅更新特定选项卡。因为在检查呈现的html时,这是disabled="false"
您的标签<div>
作为<p:tabView>
,<li>
和<a>
组合作为您的个人<p:tab>
:
<div id="tabUserModule:tabView1" ...>
<li class="ui-state-default ui-corner-top" ...>
<a href="#tabUserModule:tabView1:styleChoix">....</a>
</li>
</div>
但是disabled="true"
将其呈现为:
<div id="tabUserModule:tabView1" ...>
<li class="ui-state-default ui-tabs-selected ui-state-active ui-corner-top ui-state-disabled" ...>
<a href="#tabUserModule:tabView1:styleChoix">....</a>
</li>
</div>
请注意在ui-state-disabled
标记的class属性中添加了<li>
,导致其被禁用。
希望这会有所帮助。