0

<p:dialog>プログラムで開きたいです。

PrimeFaces ショーケースDialogBean例で見つけたこのコードを試しました。

RequestContext.getCurrentInstance().openDialog("viewCars");

ただし、コンパイルエラーが発生しました:

タイプ RequestContext のメソッド openDialog(String) は未定義です

JavaScript でそれを行う方法を探しましたが、JavaScript で行う方法が明確ではありません。<p:dialog>ボタンを押して開くにはどうすればよいですか?

4

1 に答える 1

0

PrimeFaces ショーケースは現在、PrimeFaces 4.0 で実行されます。サイトのフッターにあるバージョン情報をよく見てください。はRequestContext#openDialog()PrimeFaces 4.0 で導入され、実際には 3.5にはありません。したがって、このコンパイル エラーは、3.5 などの古いバージョンを使用していることを示しています。そのバージョンでは、属性show()で指定できるダイアログを参照する JavaScript 変数で関数を呼び出す必要がありwidgetVarます。

たとえば、純粋にビューで:

<h:form>
    <p:commandButton ... oncomplete="dialogWidget.show()" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
    ...
</p:dialog>

または、RequestContext#execute()絶対に必要な場合は次の方法を使用します。

<h:form>
    <p:commandButton ... action="#{bean.openDialog}" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
    ...
</p:dialog>

public void openDialog() {
    // ...
    RequestContext.getCurrentInstance().execute("dialogWidget.show()");
}
于 2013-09-30T11:15:38.927 に答える