从现在开始,我有这个:
.....
<a4j:commandButton action="#{ChoixContratBean.Submit1}" reRender="suite" value="valider" > </a4j:commandButton>
</a4j:outputPanel>
<a4j:outputPanel display="none" id="suite">
<jsf:outputText id="reponseeFormule"............
哪个有效。套件面板被重新渲染。但我想隐藏这个名为suite的输出面板。并在用户通过commandButton验证后显示...我无法知道如何操作,任何人都有想法?
谢谢你!答案 0 :(得分:1)
好的,我终于在下班后发现了。 (我在搜索后发布了这个问题,我是富人脸的初学者)
这不是很复杂,但是你不想陷入一个小陷阱。最终的代码看起来像这样:
......<a4j:outputPanel id="check">
<richfaces:panel rendered="#{ChoixContratBean.essaiValid}">
<jsf:outputText value="#{ChoixContratBean.check}" /></richfaces:panel>
</a4j:outputPanel>
</td>
</tr>
</table>
</richfaces:simpleTogglePanel>
<a4j:commandButton action="#{ChoixContratBean.Submit1}" reRender="suite, check" value="valider"> </a4j:commandButton>
<a4j:outputPanel id="suite" >
<richfaces:simpleTogglePanel rendered="#{ChoixContratBean.suite}" switchType="ajax"......
首先,outputPanel必须呈现为true或ajax不会触及它。这是我的第一个错误,我以为我可以使outputPanel渲染=“#{ChoixContrat.someBool},并在链接到命令按钮的ajax动作中更改它。但是,如果它首次设置为render = false,则ajax赢了” t能够将其更改为true,因为它首先无法访问!您必须在后面的bean中设置render = some boolean,其中包含要隐藏的内容以及outputPanel id = suite中的内容对于我的例子。这样,outputPanel总是被渲染,但是无论你的对手的属性渲染在后面,在ajax方法中是否设置为false或者true,其中的组件将保持隐藏或可见。
希望我很清楚,因为我是法国人.....