我需要您的帮助,在一个位置展示和隐藏两个不同的panel
组件。目前在顶部的页面中,我允许用户从selectOneRadio
组件中选择一个选项。
在selectOneRadio
组件下方,我将放置两个不同的panel
组件,我使用呈现的属性根据选择显示或隐藏panel
。例如,如果用户选择第一个选项,则将显示第一个panel
,第二个选项将被隐藏,如果他选择第二个选项,则第一个panel
组件将被隐藏,第二个组件将被隐藏所示。
但是,我面临的问题是,如果用户选择第二个选项,第一个面板将被隐藏,并且当我放置panelGrid
个组件和inputText
组件时会有很大的空间在第一个panel
及其下方,将显示第二个panel
。那么如何让第二个panel
显示在第一个panel
的位置。
这是JSF代码:
<table border="0" cellspacing="0" width="100%">
<tr>
<td>
<p:outputLabel value="Please Select a Request Type:"/>
</td>
</tr>
<tr>
<p:selectOneRadio id="request" layout="pageDirection" value="#{user.requestType}">
<td width="50%">
<f:selectItem itemLabel="Certificates for Other" itemValue="O"/>
</td>
<td width="50%">
<f:selectItem itemLabel="Certificates for Banks" itemValue="B"/>
</td>
<p:ajax event="change" update="@form" listener="#{user.firstToggle}"/>
</p:selectOneRadio>
</tr>
</table>
<p:panel id="toggleable" header="Certificates for Other" toggleable="true" rendered="#{user.firstTogg}" widgetVar="panel" style="margin-bottom:20px">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td height="100%">
<p:selectOneMenu label="c_e_language_hr" id="c_e_language_hr" disabled="#{user.firstTogg}" value="#{user.employmentCertificateLanguageHr}">
<f:selectItem itemLabel="Please Select a Language" itemValue="F"/>
<f:selectItems value="#{user.ceLangDesc}" var="celang" itemLabel="#{celang.langDesc}" itemValue="#{celang.langCd}"/>
</p:selectOneMenu>
</td>
</tr>
</table>
</p:panel>
<p:panel id="toggleable1" header="Certificates for Banks" toggleable="true" rendered="#{user.secondToggle}" widgetVar="panel1" style="margin-bottom:15px">
</p:panel>