2017-06-07 2 views
1

入力フィールドの値に基づいてモーダルを表示する必要があるため、入力フィールドに値を書き込む必要があります。実行する必要がある値に基づいて保存ボタンをクリックします。 dbクエリ、結果が存在する場合はモーダルを示し、そうでない場合はモーダルを示します。最善のアプローチは何ですか?commandButtonをクリックしたときにモーダルを表示する

問題は、onclick、oncompleteイベントを別にする必要があるということです。

<p:commandButton id="save_button" 
    value="Save" 
    update="@([id*=modalId]) @form" 
    onclick="jQuery('#modalId').show();" 
    action="#{cc.attrs.saveAction}"> 
    </p:commandButton> 


    <p:inputNumber required="true" 
    value="#{bean.number}"> 
    </p:inputNumber> 
+0

を取るだろうとそのgaranteedはこれらを読んでみて

public class BackingBean{ private Object dbResult; public Object getDbResut(){ return dbResult; } public void executeDbQuery(){ dbResult = yourDbApi.doSomeQuery(); } } <p:commandButton id="save_button" value="Save" update="@([id*=modalId]) @form" actionListener="#{bean.executeDbQuery}"> action="#{cc.attrs.saveAction}" ocomplete="#{not empty bean.dbResult ? 'jQuery('#modalId').show();' : ''}"> </p:commandButton> <p:inputNumber required="true" value="#{bean.number}"> </p:inputNumber> 

actionListenerは、actionの前に実行されます。https://www.google.com/search?q=show+ダイアログ+ from + backingbean + jsf – Kukeltje

+0

RequestContext.addCallbackParamを使用して、JSF beanからの完了していないコールバックに値を渡すことは可能です。したがって、それは何とか私の問題を解決します。 – ddzz

答えて

1

あなたのバッキングBeanにデシベル結果を設定し、あなたが条件付きでクエリの結果に応じて、モーダルパネルを表示することができますので、onCompleteの属性に.SHOW()の呼び出しを変更することができます。あなたのアクション呼び出しの後onCompleteのが正しいbean.dbResult

関連する問題