2017-10-17 11 views
0

現在、私は、ビーンのバッキングからの値で満たされたフォームを含むモーダルダイアログを開こうとしています。各ボタンがテーブル内のエントリにリンクされているので、ボタンに用意されているオブジェクトを使用して、Beanがロードされます(またはロードされるべきです)。ボタンの現在のコードは次のとおりです。ブートストラップのモーダルをonclickで更新できません

イベントをトリガーするモーダルとボタンは同じページにありますが、このページには2つのBeanがあります。 1つは、ボタンをクリックすると(指定されたオブジェクトを変更するために)表示されるモーダルと、メインウィンドウ内のすべてのデータを印刷するモーダルに使用されます。

基本的には、指定されたオブジェクトを@PostConstructメソッドに渡してBeanをインスタンス化し、2番目のBeanがリクエストによって持っていて、すべてのプロセスが完了した後に表示されるようにして、モーダルをリフレッシュしますそれを表示します。

<b:button value="" 
    icon-size="2x" 
    onclick="#{bean.dummy()}" 
    style="height: 64px; width: 64px; float: right; border: none; margin-top: 25px; border-radius: 0px;" 
    oncomplete="$('.config_modal').modal()"> 
     <f:param name="action" value="#{bean.value}" /> 
</b:button> 

私は以下のいくつかの変更を試しました。前のものが最新のものです。

  • 以前のJS modal()コールは 'onclick'イベントの内側にありました。
  • モーダルダイアログは実際のコードでは決して表示されないので、ダミーメソッドを追加しました。
  • ページ全体が更新されるため、b:commandButtonではありません。ダイアログは表示されません。
+0

の中に入っていなければなりません。 'oncomplete =" $( '。config_modal')。modal( 'true'); "'を試して、 'b:modal 'はconfig_modalというスタイルクラスを持っています。つまり、' b:modal id = "config_modal" styleClass = "config_modal" ' – MitchBroadhead

+0

ですが、ページのリロード後にoncompleteは起動しません。あなたはajaxを使う必要があります。例えば( "true"); ">'あなたが再描画したいページのどの部分も '' – MitchBroadhead

+1

@MitchBroadheadに返信してくれてありがとうMitch、私はあなたの2番目のコメントで推奨したことをしましたが、まだ動作していません。 'm doing wrong ...他のBeanで値が正しく受信されています。 私の場合はtypoが見つかりました。** .modal()内の** 'true' **が削除されました。どうもありがとう!私はそれを受け入れることができるように答えて返信してください。 – SkPr0

答えて

0

ページリロード後にoncompleteが起動しません。あなたはajaxを使う必要があります。例えば<h:form><b:commandButton value="click" action="#{bean.dummy}" oncomplete="$('.config_modal').modal('true');"><f:ajax render="@form"/></b:commandButton></h:form>。あなたが再描画したいページのどの部分も<h:form>

関連する問題