私は壁に当たった。私はa4jタグとrichタグをよく知っています(私はSeam 2.2.0とRichfaces 3.3.1を使用しています)。しかし、私は非常にシンプルな何かをしようとしていますが、豊富な:modalPanel。a4j:リッチでのサポート:modalPanel
リッチ:modalPanelsでは、Ajaxイベントが発生しないようです。ここに簡単な内訳があります: 私はh:selectOneMenuを持っていて、その中にいくつかの項目があり、値はバッキングBeanにアタッチされています。 h:selectOneMenuはa4j:supportタグで、changeイベントが発生するたびにバッキングBeanを更新する必要があります。本当に簡単なものええ?
ただし、このh:selectOneMenuがrich:modalPanelの場合、onchangeイベントはrich:modalPanelが閉じるまでバッキングBeanを更新しません。
私はこれをEclipseのデバッグモードで実行しているため、h:selectOneMenuに接続されたプロパティのセッターにブレークポイントがあるため、これを確認できます。 これは私を怒らせている!これはAjaxのバニラですが、豊富な:modalPanelsは許可していないようです。
質問:私は豊富な:modalPanel内でAjaxの処理を行うことはできますか?私は基本的に、リッチ:modalPanelをフォームとして使用しようとしています(私はa4j:フォームを使用し、h:フォームは役に立たない)、ドロップダウンの変更に反応します(たとえば、ユーザーがドロップダウンを変更したとき、フォームの一部がreRenderedになるはずです)。私はできないことをしようとしていますか?それが動作するはずです
<rich:modalPanel id="quickAddPanel">
<div>
<a4j:form id="quickAddPaymentForm" ajaxSubmit="true">
<s:decorate id="paymentTypeDecorator">
<a4j:region>
<h:selectOneMenu
id="paymentType"
required="true"
value="#{backingBean.paymentType}"
tabindex="1">
<s:selectItems
label="#{type.description}"
noSelectionLabel="Please select..."
value="#{incomingPaymentTypes}"
var="type"/>
<s:convertEnum/>
<a4j:support
ajaxSingle="true"
event="onchange"
eventsQueue="paymentQueue"
immediate="true"
limitToList="true"
reRender="paymentTypeDecorator, paymentDetailsOutputPanel, quickAddPaymentForm"/>
</h:selectOneMenu>
</a4j:region>
</s:decorate>
</fieldset>
<fieldset class="standard-form">
<div class="form-title">Payment details</div>
<a4j:outputPanel id="paymentDetailsOutputPanel">
<h:outputText value="This should change whenever dropdown changes: #{backingBean.paymentType}"/>
</a4j:outputPanel>
</fieldset>
</a4j:form>
</div>
</rich:modalPanel>
よろしく、 アンディ
a4j:support onchangeイベントで呼び出されるアクションはありますか?はいの場合は、アクションが呼ばれたことを確認しましたか? – niksvp
いいえ。単純なa4j:supportイベント= 'onchange'バインディングで、ドロップダウンが変更されたときにバインドされたバッキングBeanの値が更新されるようにします。そしてそれは更新されますが、モーダルパネルが閉じた後にのみ更新されます。モーダルパネルでなければ、ドロップダウン値が変更されるたびにBeanの更新が行われます。 –
内部(hまたはa4j)の形のモダルパネルが機能するはずです。ああ、それを再レンダリングすることを忘れないでください。あなたのモーダルコードを編集して投稿することで、より良いお手伝いをすることができます。 – Renan