2016-07-28 5 views
0

PF v.5.3.5とJSF v.2.2.8を使用しています。それはSOの頻繁な話題です。私は、appendTo属性に関連するPF v.5.3.5のドキュメントにバグがあることに気付きました。Primefaces v.5.3.5メイン以外のダイアログのレンダリングの問題を確認します。h:フォームと内部のメインフォームが表示されますが、正しく動作しません。

1アプローチ

P:confirmDialogがレンダリングされると、コマンドボタンがレンダリングされているが、アクションが動作しないと、それは入れ子Hの内側に配置されている場合、メッセージがレンダリングされない:フォーム。

2STアプローチ

私はメインhの外に、このダイアログボックスを配置する場合:私はグローバル=「true」属性を追加する場合も、それがすべてでレンダリングされていない形成。

3STアプローチ

P:confirmDialogがレンダリングされると、コマンドボタンがレンダリングされているが、アクションが機能しないとネストされたH場合は、メッセージがレンダリングされる:フォームが除去されます。建設的な投稿とコメントを事前に

<h:form> 
... 
       <p:confirmDialog id="askSessionDialog1" widgetVar="askSessionDialog1" severity="alert" 
           appendTo="@(body)" rendered="#{treeData.askSessionDialogRendered}" visible="#{treeData.askSessionDialogRendered}"> 
        <h:form> 
        <f:facet name="message"> 
         <h:outputText value="#{msg.WEB_ADMIN_PAGES_TREESEGMENT_NOSESSION}" escape="false"/> 
        </f:facet> 

         <p:commandButton value="#{msg.WEB_BUTTONS_OK}" action="#{treeData.save(false, true)}" icon="fa fa-check" 
             update="@(form)" type="button" /> 
         <p:commandButton value="#{msg.WEB_BUTTONS_CANCEL}" action="#{treeData.setAskSessionDialogRendered(false)}" 
             icon="fa fa-close" onclick="PF('askSessionDialog1.hide()')" update="@(form)" type="reset" /> 
        </h:form> 
       </p:confirmDialog> 
... 
</h:form> 

BECKEND PART

setAskSessionDialogRendered(true); 
RequestContext.getCurrentInstance().update("treeSegmentForm askSessionDialog askTurnOffDialog askSessionDialog1 askTurnOffDialog1"); 

感謝。

+0

コマンドボタンを動作させるためにこれを試してください。 ' 'をクリックしてください。 –

+0

@ YagamiLight私は多くのaproachesを試しましたが、これは良いアイデアです! – user321

+0

解決策であれば解決策を投稿し、解決策としてマークするOK –

答えて

0

ソルブード これは私には今最も効果的なアプローチです。

<h:form> 
... 
<p:confirmDialog id="askSessionDialog" widgetVar="askSessionDialog" severity="alert" 
           appendTo="@(body)" rendered="#{treeData.askSessionDialogRendered}" visible="#{treeData.askSessionDialogRendered}"> 
        <f:facet name="message"> 
         <h:outputText value="#{msg.WEB_ADMIN_PAGES_TREESEGMENT_NOSESSION}" escape="false"/> 
        </f:facet> 

        <h:form> 
         <p:commandButton value="#{msg.WEB_BUTTONS_OK}" icon="fa fa-check" type="button" accesskey="o"> 
          <p:ajax event="click" listener="#{treeData.save(false, true)}" oncomplete="PF('askSessionDialog').hide()" 
            update="@(form)" /> 
         </p:commandButton> 
         <p:commandButton value="#{msg.WEB_BUTTONS_CANCEL}" icon="fa fa-close" type="reset" accesskey="c"> 
          <p:ajax event="click" listener="#{treeData.setAskSessionDialogRendered(false)}" 
            onsuccess="PF('askSessionDialog').hide()" update="@(form)" /> 
         </p:commandButton> 
        </h:form> 
       </p:confirmDialog> 
... 
</h:form> 

BACKEND

setAskSessionDialogRendered(true); 
RequestContext.getCurrentInstance().update("treeSegmentForm"); 

空間THANKS TO:@YagamiLight 彼は私の解決策をキックオフするために私を助けました。

関連する問題