根据selectOneMenu的值,通过ajax显示和隐藏primefaces选项卡 - 隐藏选项卡而不更新tabview

时间:2017-10-09 10:33:38

标签: ajax jsf java-ee primefaces

我对p:tab有疑问。我搜索了很多,但没有发现这个问题。

我需要根据tab值的选择在tabView内显示/隐藏selectOneMenu。所以,我使用了ajax,但问题是当我更改selectOneMenu的值时,所有表单输入都会重置并且值会丢失。

<p:tab id="informationTab">     
  <h:outputLabel for="situationFamiliale" value="Situation  familiale: *" />
  <p:selectOneMenu id="situationFamiliale" value="#{bean.entity.attribut}" >
    <f:selectItem itemLabel="Celibataire" itemValue="Celibataire" />
    <f:selectItem itemLabel="Marie(e)" itemValue="Marie(e)" />
    <f:ajax event="change" render="@form" />
  </p:selectOneMenu>
</p:tab>

<p:tab id="id" rendered="#{bean.entity.attribut== 'Marie(e)'}" title="Information Menage">

</p:tab>    

1 个答案:

答案 0 :(得分:0)

如果您使用不<f:ajax的{​​{1}},则execute=的默认设置为&#39; @ this&#39;。因此,只有SelectOneMenu的值被发送到服务器。由于execute,整个表单将被重新呈现,所有其他更改都将丢失。

您应该使用render="@form"。问题是,如果要显示/删除选项卡,则必须重新呈现整个tabview。您无法使用呈现的attribut重新渲染单个标签。