jsf向导选项卡将新记录插入dataTable并移至下一个选项卡

时间:2017-03-14 07:08:46

标签: jsf primefaces wizard

我有一个素面向导,它有3个标签,每个标签内都有一个文本字段和一个带有添加按钮的dataTable,这个添加按钮将字段中的信息添加到我的数据库并显示在dataTable中,当我添加一个新记录时,向导移动到下一个选项卡,我的问题是当我添加新记录时,它不会立即显示在dataTable中但我必须重新加载我的服务器(tomcat),但是如果我编辑了现有记录并且在第二个标签中为它添加了一条新记录,它立即显示在dataTable中。

关于最新情况的任何建议我尝试了很多方法将向导从标签移动到另一个但没有运气,这是我使用的:

使用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) 

有人可以解释我的属性中的真实含义吗?以及关于我做错了什么的任何建议?

1 个答案:

答案 0 :(得分:0)

当成功完成向dataTable添加新记录时,您必须触发向下一个选项卡的移动,正如您在问题的第二个解决方案中所提到的,您应该将其添加到添加按钮:

public void addRecord() {

    RequestContext context = RequestContext.getCurrentInstance();
    context.execute("PF('wiz').next()");

}

知道“wiz”是向导的widgetVar,此解决方案应该工作,否则问题出现在添加按钮中,请确保您正在更新选项卡。