2

私のページの 1 つにダイアログがあります。ちゃんと開きます。ページのボタンを使用すると正常に動作し、閉じます。ただし、ダイアログから「x」を押しても閉じません。ダイアログに入力フィールドがあるという事実に関連していると思いますが、よくわかりません。これがだまされている場合は申し訳ありませんが、同様の投稿が見つかりませんでした。

        <p:commandButton action="#{phoneListBean.debugger}"
            value="Merge Unqiue" onclick="mdlg.show();"
            update=":pmsg, :createNewPanel, :listform" />

        <p:dialog id="mdialog" header="Merge Unqiue" widgetVar="mdlg"
            appendToBody="true">
            <h:form id="mform">
                <h:panelGrid columns="2" cellpadding="5" id="m">
                    <h:outputLabel for="listName" value="Enter the List Name:" />
                    <p:inputText value="#{phoneListBean.mergeList.name}" id="listName" />


                    <p:commandButton action="#{phoneListBean.mergeUnique}"
                        value="Merge Unqiue" update=":pmsg, :listform"
                        onclick="mdlg.hide();" />
                </h:panelGrid>
            </h:form>

        </p:dialog>

助けてくれてありがとう。

4

1 に答える 1

4

onclick問題は、ダイアログを表示および非表示にするために、Primefaces ボタンで属性を使用したくないことです。これらのボタンは Ajax に対応していないため、ポストバックの前にクリック イベントが呼び出されない場合があります。

代わりに、oncomplete属性を使用する必要があります。これにより、サーバー ポストバックが発生した後にのみ実行するように Javascript イベントが通知されます。つまり、show()既に更新されたダイアログの内容が表示されhide()、サーバー側の実行が終了した後にのみ発生します。

于 2012-09-28T18:09:12.630 に答える