1

値を持つモーダルポップアップのヘッダーを表示したいchatBean.selectedUser。発生することは、onclickイベントがイベントの前に発生actionするため、イベントが発生したときにページが更新されないことonclickです。したがって、モーダル ポップアップのヘッダーを に含まれる値として取得できませんchatBean.selectedUserchatbean.selectedUserページが送信された後にモーダルポップアップのヘッダーを値とともに表示できる方法はありますか?

ビューの関連部分は次のとおりです。

<h:form>
    <p:selectOneMenu value="#{chatBean.selectedUser}" id="select">
        <f:selectItems value="#{chatBean.friendList}" var="users" itemLabel="#{users.firstName}" itemValue="#{users.firstName}"/>
    </p:selectOneMenu>
    <p:commandButton id="basic"  value="Basic" onclick="dlg.show()" type="button"  action="#{chatBean.refresh}"></p:commandButton>      
    <p:dialog id="modalDialog" header="#{chatBean.selectedUser}" widgetVar="dlg" modal="true" height="100">  
        <h:outputText value="This is a Modal Dialog." />  
        <h:inputText></h:inputText>
    </p:dialog>
</h:form>
4

1 に答える 1

2

アクションが完了する前ではなく、完了したときにのみダイアログを表示する必要があります。oncomplete代わりに属性を使用してください。

<p:commandButton ... oncomplete="dlg.show()" />

ダイアログを開く前に、ダイアログのコンテンツを明示的に更新することを忘れないでください。あなたのコードのどこにもそれはありません。RequestContext#update()または何かを使用しているかもしれませんが、通常updateはこれに属性を使用します。

<p:commandButton ... update="modelDialog" oncomplete="dlg.show()" />

また、type="button"変です。この方法では、アクションはまったく呼び出されませんが、おそらくそれは実験の不注意な残り物です。それを除く。

于 2012-10-03T18:02:37.307 に答える