0

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

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

Button1应该打开一个dialog,但在打开它之前,我希望它用一些值填充对话框的 primefaces 选项列表的目标(这项工作是由方法完成的populateDependancies(item))。

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

我希望我清楚地解释了这个问题......如果还有什么不清楚的地方请告诉我


这是我的页面结构,也许它可以帮助: 在此处输入图像描述

这是我的方法:

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);
    }
}
4

2 回答 2

1

onstart executes javascript code, just like oncomplete. #{bean.populateDependancies(item)} must be the value of action or actionListener attributes.

edit: in addition, process="@this" attribute and value must be used, in order not to submit the whole form.

于 2014-07-14T11:33:20.090 回答
0

通过使用命令按钮的actionListenerANDprocess="@this"属性解决了问题。但老实说,我不知道为什么它只能通过添加process="@this".. 如果有人知道原因.. 请告诉我。谢谢大家。

于 2014-07-14T14:08:51.710 回答