如何禁用<p:tab>

时间:2015-09-16 16:43:22

标签: primefaces

我想使用&lt; p:commandButton &gt; 停用&lt; p:tab &gt;

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;
}
}

但是当我执行此代码时,所有选项卡都被禁用,那么我该如何解决这个问题呢?

enter image description here

我想停用橙色

包围的标签

1 个答案:

答案 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>,导致其被禁用。

希望这会有所帮助。