gpt4 book ai didi

jsf - 在 p :confirmDialog without sending a request to the server 上显示动态消息

转载 作者:行者123 更新时间:2023-12-04 21:19:35 26 4
gpt4 key购买 nike

我需要在 <p:confirmDialog> 上动态显示确认消息.这可以通过在向服务器发送请求后使用 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>
<p:dataTable>页脚的指定按钮可以更新里面设置的消息 deleteMultipleActionListener(ActionEvent actionEvent){...}并更新指定的确认对话框, confirmDialogDeleteMultiple如下。
<p:confirmDialog id="confirmDialogDeleteMultiple"
widgetVar="confirmDeleteMultiple"
message="#{bean.deleteMultipleMsg}"
header="Header Message"
appendToBody="true" closable="true">

<p:commandButton id="confirmDeleteMultiple"
value="Yes"
process="@this dataTable messages"
rendered="#{bean.renderedYesButtonMultipleDelete}"
update="messages dataTable"
oncomplete="confirmDeleteMultiple.hide()"
actionListener="#{bean.deleteMultiple}"/>

<p:commandButton id="declineDeleteMultiple"
value="#{bean.noButtonTextMultipleDelete}"
onclick="confirmDeleteMultiple.hide()"
type="button"/>
</p:confirmDialog>

托管 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是显示在 <p:confirmDialog> 上的消息在 AJAX 请求之后。

毫无疑问。这按预期工作。因此,我不会详细探讨这一点。

然而,这需要向服务器发送 AJAX 请求,以获取简单的确认消息。我觉得这是非常没有必要的。在向服务器发送实际请求之前,应该在客户端本身显示这样的确认消息。

因此,我正在寻找一种方法来在客户端本身执行此操作,可能是使用通常的 JavaScript。这可以像往常一样简单地完成,就像 JavaScript confirm("Message")OkCancel按钮显示?

我正在使用 Primefaces 3.5。现在是 4.0 最终版。现在是 5.1 决赛。

最佳答案

可能很简单replaceWith功能对你来说就足够了:

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

</script>

关于jsf - 在 p :confirmDialog without sending a request to the server 上显示动态消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17253848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com