Primefaces选项卡未正确更新

时间:2014-01-31 14:37:20

标签: primefaces page-refresh commandbutton

我与commandButton进行了对话,这就是我要做的事情:

  1. 做一些Java工作
  2. 更新Primefaces标签
  3. 让我的对话框消失
  4. 转到某个标签页。
  5. 这是我正在使用的代码:

                    <p:commandButton value="Submit"
                    action="<some java work>"
                    oncomplete="dialogue.hide(); sideTabs.select(1)"
                    update="<update side tab">
                </p:commandButton>
    

    问题是,这只能在刷新之间运行一次。我的意思是,我点击按钮,一切正常 - 选项卡更改为请求的选项卡,选项卡更新,对话框消失。但是当我再次单击该按钮时,确实选中了所请求的选项卡,但在我按下f5之前没有正确刷新。一旦我这样做,我可以再次单击对话框按钮,选项卡将再次正确刷新,但再一次,只有一次 - 直到我再次点击f5。所以,像这样:

    1. 点击按钮 - &gt;请参阅选项卡中的1项
    2. 再次点击该按钮 - &gt;仍然只能看到标签中的1个项目
    3. 点击f5 - &gt;请参阅选项卡中的2个项目
    4. 点击按钮 - &gt;请参阅选项卡中的3个项目
    5. 再次点击该按钮 - &gt;仍会看到标签中的3个项目
    6. 点击f5 - &gt;看标签中的4个项目 等...
    7. 有谁知道为什么会这样?我是否需要在commandButton中添加一些页面刷新机制?如果是这样,这是怎么做到的? 感谢!!!

1 个答案:

答案 0 :(得分:1)

我试图复制这个问题没有成功。

以下是我的ViewScoped bean的属性:

private String str1 = "a";

private String str2 = "b";

private String update = ":f:t";

private Integer index = 0;

以下是观点:

<h:form id="f">
    <p:tabView id="t" widgetVar="tVar" activeIndex="#{viewMBean.index}" >
        <p:tab id="a" title="A" >
            #{viewMBean.str1}
        </p:tab>
        <p:tab id="b" title="B">
            #{viewMBean.str2}
        </p:tab>
    </p:tabView>
</h:form>

<p:dialog id="d" widgetVar="dVar">
    <h:form>
        <p:inputText value="#{viewMBean.str1}" />
        <br />
        <p:inputText value="#{viewMBean.str2}" />
        <br />
        <p:inputText value="#{viewMBean.update}" />
        <br />
        <p:inputText value="#{viewMBean.index}" />
        <br />
        <p:commandButton value="Submit" update="#{viewMBean.update}" oncomplete="dVar.hide();" />
    </h:form>
</p:dialog>

我认为问题出在你代码的其他地方。