2017-10-09 55 views
0

我遇到了p:tab問題。我GOOGLE了很多,但沒有發現這個問題。根據selectOneMenu的值通過ajax顯示和隱藏primefaces選項卡 - 隱藏選項卡而不更新tabview

根據selectOneMenu值的選擇,我需要在tabView內顯示/隱藏tab。所以,我已經使用了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>  
+0

嘗試更新標籤('update =「id」')而不是重新渲染整個表單('render =「@ form」')。 –

+0

我已經試過這個解決方案,但是在這種情況下我的選項卡沒有出現。 –

回答

0

如果使用<f:ajax沒有execute=,爲execute默認爲 '@this'。因此只有SelectOneMenu的值被髮送到服務器。由於render="@form"整個表格將被重新排列,所有其他更改都將丟失。您可以使用f:ajax execute="@form" render="@form"...>。問題是,如果你想出現/消失一個標籤,你必須重新渲染整個tabview。您無法使用呈現的屬性重新渲染單個選項卡。

+0

這是我的問題,我確實想更新一個tab而沒有整個tabView.it必須存在一個解決方案,不是嗎? –

+0

這是唯一可能的,如果選項卡可能留在tabview中,但是爲空。 ''。 現在你可以使用' Holger