我正在尝试创建一个包含动态标头的对话框。所需的行为是:
当我点击按钮时,我更新了支持bean中变量(var
)的值,并调用了另一个变量(updateDialogHeader
)的方法(headerDialog
)文本取决于(var
)的值。同一个按钮将显示一个对话框,其标题等于该对象
headerDialog
。
我使用以下代码:
XHTML页面
<h:form>
<p:commandButton value="?" update="formDialog" action="#{backingBean.methodUpdate (1)}" oncomplete="myDialog.show()"/>
</h:form>
<h:form id="formDialog">
<p:dialog widgetVar="myDialog" position="center" modal="true" header="#{backingBean.headerDialog}" width="400" >
</p:dialog>
</h:form>
支持bean
public void methodUpdate (int param) {
var= param;
headerDialog = updateHeaderDialog();
}
public String updateHeaderDialog() {
if (var== 1) {
return "Header one";
}
if (var== 2) {
return "Header two";
}
return "";
}
使用rpevious代码显示叠加的对话框,第一个对话框是没有标题的对话框,第二个是所需的对话框(带有正确的标题)。再次单击按钮显示3个对话框,第一个是所需的,第二个是没有标题的对话框,第三个是带标题的所需对话框。请注意,我点击的越多,我得到的对话就越多。
请帮帮我。我不明白我在哪里误会。