Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 在p:confirmDialog上显示动态消息,而不向服务器发送请求_Jsf_Primefaces_Jsf 2.2 - Fatal编程技术网

Jsf 在p:confirmDialog上显示动态消息,而不向服务器发送请求

Jsf 在p:confirmDialog上显示动态消息,而不向服务器发送请求,jsf,primefaces,jsf-2.2,Jsf,Primefaces,Jsf 2.2,我需要在上动态显示确认消息。这可以通过在向服务器发送请求后使用AJAX更新该组件来实现。比如说, <p:column selectionMode="multiple"> <f:facet name="footer"> <p:commandButton oncomplete="confirmDeleteMultiple.show()" update=":form:confirmDialogDel

我需要在
上动态显示确认消息。这可以通过在向服务器发送请求后使用AJAX更新该组件来实现。比如说,

<p:column selectionMode="multiple">
    <f:facet name="footer">
        <p:commandButton oncomplete="confirmDeleteMultiple.show()"
                         update=":form:confirmDialogDeleteMultiple" 
                         process=":form:dataTable"
                         actionListener="#{bean.deleteMultipleActionListener}"/>
    </f:facet>
</p:column>
托管bean如下所示

@ManagedBean
@RequestScoped
public final class Bean {
    private String deleteMultipleMsg; //Getter only.
    private boolean renderedYesButtonMultipleDelete=true; //Getter only.
    private String noButtonTextMultipleDelete="No"; //Getter only.

    public void deleteMultipleActionListener(ActionEvent actionEvent) {
        if(selectedValues!=null&&!selectedValues.isEmpty()) {
            renderedYesButtonMultipleDelete=true;
            noButtonTextMultipleDelete="No";
            deleteMultipleMsg="Confirmation message.";
        } else {
            noButtonTextMultipleDelete="Ok";
            renderedYesButtonMultipleDelete=false;
            deleteMultipleMsg="Row selection message.";
        }
    }
}
selectedValues
是一个列表,其中包含
DataTable
中的选定行
deleteMultipleMsg
是一条在AJAX请求后显示在
上的消息


毫无疑问。这正如预期的那样有效。因此,我不会详细探讨这个问题

然而,这只需要向服务器发送一个AJAX请求来获取一条简单的确认消息。我觉得这是完全没有必要的。在将实际请求发送到服务器之前,应该在客户端本身显示这样的确认消息

因此,我正在寻找一种在客户端本身实现这一点的方法,可能是使用普通的JavaScript。这是否可以像往常一样简单地完成,就像显示带有
Ok
Cancel
按钮的JavaScript
confirm(“Message”)
一样


我用的是PrimeFaces3.5。现在是4.0决赛。现在是5.1版本的最终版本。

您可以使用CSS样式
display:none
将消息保存在XHTML页面中,并使用JavaScript进行验证,如果验证失败,只需将样式更改为
display:block
。 没有AJAX。

可能很简单,功能对您来说就足够了:

<script>
jQuery("confirmDeleteMultiple.p").replaceWith(...

</script> 

jQuery(“confirmDeleteMultiple.p”)。替换为(。。。

在实际AJAX请求删除所选行之前,应首先在客户端计算要删除的行数,该客户端要求用户进行确认,如“您将要删除5行…”因此,我不确定如何使用JavaScript实现这一点。我使用复选框来标记要删除的行,但实际上复选框不会呈现。它们仅通过使用一些
等类似方法显示。
<script>
jQuery("confirmDeleteMultiple.p").replaceWith(...

</script>