0

これから、私はこれを持っています:

.....
<a4j:commandButton  action="#{ChoixContratBean.Submit1}" reRender="suite" value="valider"  > </a4j:commandButton>
        </a4j:outputPanel>

    <a4j:outputPanel display="none" id="suite">
    <jsf:outputText id="reponseeFormule"............

動作します。スイート パネルが再レンダリングされます。しかし、スイートという名前のこの出力パネルを非表示にしたいと思います。ユーザーがcommandButtonを介して検証したら、それを表示します...方法がわかりません。誰かアイデアがありますか?

ありがとう !

4

1 に答える 1

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 を render= true にする必要があります。そうしないと、ajax はそれに触れません。これが私の最初の間違いでした。outputPanel render="#{ChoixContrat.someBool} を作成し、コマンド ボタンにリンクされた ajax アクションでそれを変更できると思っていました。しかし、最初に render = false に設定すると、ajax は無効になります。そもそも到達できないため、true に変更することはできません!非表示にするものを含み、outputPanel id= スイートにあるコンポーネントのバック Bean に、rendered=some boolean を設定する必要があります。私の例では、このように、outputPanel は常にレンダリングされますが、その中のコンポーネントは、レンダリングされたコントレーナーの属性が ajax メソッドで false または true に設定されているかどうかにかかわらず、非表示または表示のままになります。

私はフランス人なので、はっきりしているといいのですが.....

于 2010-07-04T14:47:46.857 に答える