2014-07-14 42 views
0

我有一个按钮,让我们把它称为“Button1的”:OnStart方法被调用后的onComplete方法

<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的cellEditor(甚至取消按钮)validateEdition按钮(注: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); 
    } 
} 
+0

尝试使用“actionListener”而不是“onstart” –

+0

已经尝试和按钮根本不调用该方法 – Siho

回答

1

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

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

+0

我已经尝试过action和actionListener而不是onStart,并且没有人工作。他们不会调用这个方法。这很奇怪,因为我检查了方法签名,它是正确的 – Siho

+0

你可以粘贴整个窗体代码'Button1'是嵌套在? –

+0

如果我粘贴所有的代码,这将是数百行...... – Siho

0

问题通过使用actionListenerprocess="@this"属性的命令按钮解决..但我真的不知道为什么它只有通过添加process="@this" ..如果有人知道原因..请让我知道。谢谢大家。

+0

下次发布[MCVE](http://stackoverflow.com/help/mcve),你会更快得到更好的帮助。另请参阅我们的[jsf信息页面](http://stackoverflow.com/tags/jsf/info) – perissf

+0

谢谢@perissf,但我认为我发布的代码足以说明问题。不是吗? – Siho

+0

默认是@form,这听起来很奇怪。尝试再次删除 –