2

ダイアログの表示と非表示をプログラムで制御したいと思います。ダイアログが「X」を使用して閉じられ、ajax close イベントリスナーが追加された場合を除いて機能します。たとえば、以下のコードでは、'X' を使用してダイアログを閉じ、ajax 行をコメントアウトすると、ボタンを使用して何度も表示/再オープンします。

ところで: oncomplete メソッド呼び出しを使用してだまされた javascript オプションを見てきました。

<h:form>
Status: <h:outputText id="status" value="#{helloBean.visible}" />
<p />

<p:dialog id="myDialog" header="Header Text" widgetVar="dlg" visible="#{helloBean.visible}">
<p:ajax event="close" listener="#{helloBean.hide}" update="myDialog" />

<h1>Dialog content ....</h1>

  <p:commandButton value="Hide" actionListener="#{helloBean.hide}" update="myDialog status" />
</p:dialog>

<p:commandButton value="Show" actionListener="#{helloBean.show}" update="myDialog status" />            
</h:form>


@ManagedBean
@ViewScoped
public class HelloBean implements Serializable {

private static final long serialVersionUID = 1L;
private boolean visible;

public boolean isVisible() {
  return visible;
}

public void setVisible(boolean visible) {
  this.visible = visible;
}

public void show() {
  setVisible(true);
  System.err.println("show(): " + visible);
}
public void hide() {
  setVisible(false);
  System.err.println("hide(): " + visible);
}
}

プライムフェイス 3.5、JSF 2.0.7、Tomcat 7

4

1 に答える 1