5

私は primefaces 3.3.1 と JSF 2 (Mojarra 2.1.9) を使用しています。

DataTable エントリの詳細を表示するための DataTable コンポーネントとダイアログを含むページがあります。ダイアログが 1 つしかない場合、これは非常に簡単です。私が望むのは、ユーザーが異なるエントリの詳細を含む 2 つまたは 3 つのダイアログを同時に開くことができるようにすることです。ダイアログのコンテンツだけでなく、サーバーからAJAXを使用してダイアログ全体を取得する方法を知っている人はいますか?

4

3 に答える 3

6

はい、しました。この目的のために、必要なダイアログをプログラムでバッキング Bean に作成しました。これがベスト プラクティスではないことは承知していますが、現時点ではこれが唯一の可能な解決策だと思います。まず、JSF ページのダイアログのコンテナーであるグループ パネルを 1 つ追加しました。次に、バッキング Bean に次のようなコードがあります。

UIComponent panelGroup = facesContext.getViewRoot().findComponent("panel_id");
Dialog dialog = new Dialog();
dialog.setHeader("Sample");
dialog.setVisible(true);
dialog.setMinimizable(true);
...
panelGroup.getChildren().add(dialog);
...
RequestContext requestContext = RequestContext.getCurrentInstance();
requestContext.update("panel_id");
于 2012-09-28T10:25:00.047 に答える
3

ダイアログIDも動的にすることができるので、IDまたは他の値を作成してそれを与えることができます。

<p:dialog header="Choose Delimiter Type" id="dialog"
    widgetVar="exportDialog#{p.Id}" resizable="false" >

ボタンを介して呼び出します。

<p:commandButton id="id" value="xxx"
            actionListener="#{p.export2CSV}" ajax="false"
            onclick="exportDialog#{p.tabId}.show()">                
        </p:commandButton>
于 2012-09-25T08:40:44.250 に答える