onStart方法称为AFTER onComplete方法

时间:2014-07-14 10:42:10

标签: jsf primefaces commandbutton onstart

我有一个按钮,我们称之为“Button1”:

<p:commandButton icon="ui-icon-document"
  value="Button1"
  onstart="#{bean.populateDependancies(item)}"
  update="myDialog"
  oncomplete="dialogWidget.show();">
</p:commandButton>

Button1应该打开dialog,但之前打开它我希望它填充中的主要选项列表的目标带有一些值的对话框(此作业由方法populateDependancies(item)完成)。

但实际上,当我关闭对话框并且点击 populateDependancies(item)的primefaces的validateEdition按钮时,调用方法cellEditor(甚至是取消按钮)(注意:Button1放在可编辑数据表的列中。)

我希望我能清楚地解释这个问题......如果有什么不清楚,请告诉我


这是我的页面结构,也许它可以帮助: enter image description here

这是我的方法:

public void populateDependancies(Release release) {
    if (release != null) {
        if (rfcsDualListModel.getTarget() != null || !rfcsDualListModel.getTarget().isEmpty()) {
            rfcsDualListModel.setTarget(null);
        }
        List<Rfc> rfcDejaAssocies = release.getRfcs();
        rfcsDualListModel.setTarget(rfcDejaAssocies);
    }
}

2 个答案:

答案 0 :(得分:1)

onstart执行javascript代码,就像oncomplete一样。 #{bean.populateDependancies(item)}必须是actionactionListener属性的值。

编辑:此外,必须使用process="@this"属性和值,以便不提交整个表单。

答案 1 :(得分:0)

使用commandButton的actionListenerprocess="@this"属性解决了问题..但老实说,我不知道为什么只有添加process="@this"才有效。如果有人知道理由..请告诉我。谢谢大家。