我有一个Prime Faces向导,它有3个选项卡,在每个选项卡中,有一个文本字段和带有添加按钮的数据表,此添加按钮将信息添加到字段中数据库并显示在DataTable中,当我添加新记录时,向导移动到下一个选项卡时,我的问题是当我添加新记录时,它不会立即显示在数据表中,但我必须重新加载我的服务器(Tomcat),但是,如果我在第二个选项卡中编辑了现有记录并在第二个选项卡中添加了新记录,它将立即显示在数据词中。
关于发生的事情的任何建议,我尝试了多种方法将向导从on tab移动到另一个,但没有运气,这是我使用的:
使用Java:1-
Wizard wizard = (Wizard) FacesContext.getCurrentInstance().getViewRoot().findComponent("frmExamBank:tabsId");
wizard.setStep("tab2");
RequestContext.getCurrentInstance().update("frmExamBank");
2-
RequestContext context = RequestContext.getCurrentInstance();
context.execute("PF('wiz').next()");
使用p:commandbutton属性:
oncomplete="PF('wiz').loadStep('tab3',true)
有人可以解释true在我的属性中意味着什么?关于我在做什么错的任何建议?
您必须触发一个移动到下一个选项卡,在将新记录添加到数据表中,成功完成了,因此,正如您在问题的第二个解决方案中提到的那样,您应该将其添加到添加按钮:
public void addRecord() {
RequestContext context = RequestContext.getCurrentInstance();
context.execute("PF('wiz').next()");
}
知道" wiz"是向导的窗口,该解决方案应起作用,否则问题在添加按钮中,请确保您正在更新选项卡。