2012-02-23 7 views
1

私は<af:commandLink><h:panelGrid>を持っています。リンクがグリッドの外側にあります。ページの読み込み時に、グリッドにrendered="false"を保存しています。グリッド内に別のリンクもあります。グリッドがレンダリングされないので、このリンクはレンダリングされません。グリッド外のリンクをクリックすると、rendered="true"が設定され、グリッド内のリンクもレンダリングされます。条件付きレンダリングされたコマンドリンクはアクションを呼び出さない

グリッド内のリンクをクリックすると、アクションは呼び出されません。これはどのようにして起こり、どのように解決できますか?

<af:commandLink action="#{masterFileConfig.getMasterFileTypeConfig}" onclick="return requiredCheck();" 
       binding="#{masterFileConfig.commandLink1}" 
       id="commandLink1"> 
    <af:objectImage source="/images/search.gif" 
        binding="#{masterFileConfig.objectImage1}" 
        id="objectImage1"/> 
</af:commandLink> 
<h:panelGrid columns="2" binding="#{masterFileConfig.panelGrid2}" rendered="#{masterFileConfig.showGrid}" 
      id="panelGrid2" width="100%" styleClass="greyTable"> 
    <h:panelGrid columns="1" border="0" 
       id="panelGrid3" width="100%" style="text-align:right;"> 
     <af:commandLink action="#{masterFileConfig.saveMasterFileTypeConfig}" 
         onclick="return handleBusinessRules();" 
         id="commandLink2"> 
      <af:objectImage source="/images/save.gif" id="objectImage2"/> 
     </af:commandLink> 
    </h:panelGrid> 
</h:panelGrid> 
+1

[条件付きでレンダリングされたUICommandコンポーネントのアクションメソッドを呼び出す方法?](http://stackoverflow.com/questions/3045129/how-to-call-an-action-method-of- a-uicommand-component-which-rendered-conditi) – BalusC

+0

ありがとうBalus。あなたのコメントを詳しく教えてください:3. の代わりにを使用している場合は、を使用してプロパティを転送できます。それはリクエストパラメータとして利用可能になります、あなたはbean(post)コンストラクタでそれをチェックすることができます。 おそらくコードサンプルが役に立ちます。 – user265950

+0

Balus ..ありがとうございました。私は、ユーザーの次のものを使用し、それは働いた - >私のケースでは、Javascriptが救助のために来た。つまり、条件付きで表示されるものは何でも、HTMLの部分に入れ、目的のイベントが発生するまでdisplay:noneを表示します。 HTMLポーションは、あなたが望むように任意のJSFタグ(コマンドボタンを含む)を持つことができます(アクションメソッドやものを呼び出す)。 – user265950

答えて

0

リンクのclientComponentプロパティをtrueに設定できますか?おそらく、onClickイベントが対話するために生成されたクライアントコンポーネントはありません。

また、2つのコンポーネントの代わりにaf:commandImageLinkを使用することを検討しましたか?

関連する問題