根据selectOneMenu的值通过ajax显示和隐藏primefaces选项卡 - 隐藏选项卡而不更新tabview
我遇到了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>
如果使用<f:ajax
没有execute=
,为execute
默认为 '@this'。因此只有SelectOneMenu的值被发送到服务器。由于render="@form"
整个表格将被重新排列,所有其他更改都将丢失。您可以使用f:ajax execute="@form" render="@form"...>
。问题是,如果你想出现/消失一个标签,你必须重新渲染整个tabview。您无法使用呈现的属性重新渲染单个选项卡。
这是我的问题,我确实想更新一个tab而没有整个tabView.it必须存在一个解决方案,不是吗? –
这是唯一可能的,如果选项卡可能留在tabview中,但是为空。 '
尝试更新标签('update =“id”')而不是重新渲染整个表单('render =“@ form”')。 –
我已经试过这个解决方案,但是在这种情况下我的选项卡没有出现。 –