使用是/否与primefaces对话框阻止或推迟commandLink操作

时间:2015-05-22 11:40:45

标签: jsf-2 primefaces jsf-2.2

在我的UI中,有些项目已经过编辑。在此编辑UI中,用户可以切换到下一个或上一个项目。如果用户更改了项目的值(保存在javascript中),我想要显示一个对话框,要求保存并提供“是”,“否”和“取消”操作。

以下是下一个项目链接的示例代码:

<p:commandLink ajax="true" action="#{editPropertyBL.nextItem()}" onstart="handleDocNavigation();" process="@this" immediate="true" />

使用Javascript:

function handleDocNavigation() {
    if (valueInEditChanged == true) {
        PF('valueChangedEditDialogVar').show();
    } 
}


<p:dialog id="valueChangedEditDialogId" widgetVar="valueChangedEditDialogVar" modal="true">

    <h:outputText value="Save changes?" />

    <f:facet name="footer">
        <h:panelGroup>
            <p:commandButton value="Yes" ...??? />
            <p:commandButton value="No" ...??? />
            <p:commandButton value="Cancel" oncomplete="PF('valueChangedEditDialogVar').hide(); return false;" />
        </h:panelGroup>
    </f:facet>

当用户在当前“脏”项目上保留的确认对话框中单击“取消”时,应阻止调用editPropertyBL.nextItem()方法。 当用户单击“是”时,必须调用保存操作(从确认对话框中),然后切换到下一个项目。通过“取消”,它将切换到下一个项目。

问题是当模态确认对话框出现时,在单击对话框的三个按钮之一之前切换项目。我试验了返回假而没有成功。 知道怎么做吗?我认为这是常见的要求,但还没有找到一个例子。 我认为primefaces确认Dialog不适合我的情况。 可能remoteCommand可能是一个解决方案?我希望有一种更优雅的方式。

此致 奥利弗

0 个答案:

没有答案