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
按钮的JavaScriptconfirm(“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>