【发布时间】:2014-12-23 10:43:10
【问题描述】:
我知道有很多关于这个主题的问题,但没有一个可以帮助我。
我只想通过我的托管 bean 打开一个对话框,因为我需要一个普通对象来处理,所以我想要一个 actionListener,它会生成一个新对象然后打开对话框。
问题:它不起作用。为什么?我不知道。
我在任何控制台中都没有收到任何错误。没有 JS 错误,我的 Tomcat 控制台中没有任何内容,他的日志中没有任何内容。而且我非常非常确定它应该以这种方式工作。
这是我做的:
“添加”-按钮:
<p:outputPanel style="float:right">
<p:commandButton value="Hinzufügen" icon="ui-icon-plusthick"
actionListener="#{lessonTypeController.addLessonTypeDialog}" />
</p:outputPanel>
actionListener 如下所示:
public void addLessonTypeDialog() {
lessonType = new LessonType();
lessonType.setTypicalDuration(getTypicalDuration());
RequestContext context = RequestContext.getCurrentInstance();
context.execute("PF('addLessonTypeDialog').show()");
}
以及应该打开(但不想打开)的对话框:
<p:dialog header="Add a lessontype"
id="addLessonTypeDialog" widgetVar="addLessonTypeDialog"
minHeight="600" modal="true" draggable="false" resizable="false">
<p:ajax event="close" update="@form" />
<p:outputPanel>
... Some content which works fine if dialog is called different
</p:outputPanel>
</p:dialog>
对话框与调用按钮放置在同一个 xhtml 页面中。
我真的不知道为什么这不起作用。正如我所说,我真的非常确定这样是正确的。也没有错误。当我点击按钮时没有任何反应。
其他一切都很好,我也使用自己的 xhtml 页面中的对话框,这很好,但现在必须重构,因为我需要关闭事件来更新表单。
如果我直接通过 JS 调用对话框(就像我在 bean 中所做的那样,只是使用按钮的 onlick 事件)它可以工作,但是我遇到了问题,因为 actionListener 不够快,无法在JS 已经显示了导致错误和 NullPointerExceptions 的对话框。
请帮帮我,这是学校的一个重要项目,我必须一个人完成,因为我的伙伴们什么都不做,我真的不知道该怎么办。
【问题讨论】:
-
stackoverflow 项目完成站点了吗?
-
我不知道编程问题发生在哪里很重要。如果它让你开心,我会在上面投入大量空闲时间。
-
两个建议:第一:更新commandButton中的对话框(
update="dialogId")。秒:在<p:dialog>中添加appendToBody="true"
标签: javascript jsf primefaces