在PrimeFaces中根据bean中的值显示对话框

时间:2014-02-28 10:56:43

标签: jsf-2 primefaces

我有p:dialogoncomplete显示的commandButton

<p:commandButton value="Update" id="update"
    actionListener="#{serviceTypeViewBean.beforeUpdate}"
    oncomplete="updatedlg.show();)">
</p:commandButton>

此对话框有一个列表,该列表在'beforeUpdate'方法中更新。我想在onc​​omplete中添加一个条件,如果列表不为空,则显示对话框

if(list != empty){
 updatedlg.show()
};

如何在commandButton的oncomplete中添加此条件?

2 个答案:

答案 0 :(得分:1)

你可以像@Xtreme Biker建议的那样做。另一种解决方案是使用callbackParam:

添加到您的beforeUpdate方法代码,如下所示:

if(list != empty){
   RequestContext.getCurrentInstance().addCallbackParam("emptyList", false);
} else {
   RequestContext.getCurrentInstance().addCallbackParam("emptyList", true);
}

然后您可以检查oncomplete属性中的参数:

<p:commandButton value="Update" id="update"
    actionListener="#{serviceTypeViewBean.beforeUpdate}"
    oncomplete="if(!args.emptyList) { PF('updatedlg').show(); }">
</p:commandButton>

请注意,callbackParam非常灵活,您可以在很多情况下找到它的用法。

答案 1 :(得分:0)

您可以使用EL评估来呈现/隐藏javascript代码:

oncomplete=#{not empty serviceTypeViewBean.list ? 'updatedlg.show()' : '' }

另见: