【问题标题】:JSF - conditionally show one of two dialogsJSF - 有条件地显示两个对话框之一
【发布时间】:2012-10-08 12:45:48
【问题描述】:

我的页面中有两个 Primefaces p:dialogs,我有两个按钮来显示它们(一个是删除按钮,另一个是编辑按钮)。

我将对话框的可见属性设置如下:删除按钮visible="#{fn:length(bean.selectedItems) gt 0}visible="#{fn:length(bean.selectedItems) eq 1},这样我可以删除多个元素,但同时只能编辑一个。

现在bean是ViewScoped,所以如果只选择了一个项目,并且有一个没有按ajax提交的commandButton,那么两个对话框都会显示,这显然不是我想要的。

什么是仅在需要时显示适当对话框的最简单方法?

我不想为此设置额外的 bean 属性,所以让我们认为这是一个简单的解决方案。还有其他方法吗?也许将操作的名称设置为视图范围参数?或者使用呈现的属性并从 javascript 回调中管理显示/隐藏?

【问题讨论】:

    标签: java jsf primefaces


    【解决方案1】:

    我认为正确的方法是

    <p:commandButton value="DELETE" 
                     onclick="deleteDialog.show()" 
                     disabled="#{fn:length(bean.selectedItems) eq 0}" />
    
    <p:commandButton value="EDIT" 
                     onclick="editDialog.show()" 
                     disabled="#{fn:length(bean.selectedItems) ne 1}" />
    

    【讨论】:

    • 我最终实现了与此非常相似。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多