0

按下提交按钮,bean 首先检查有效值,如果验证失败,则会显示一个对话框。当进程正在运行时,另一个会话提交一个按钮按下并且 bean 检查标志并需要呈现一个不同的对话框。

是否有一个命令按钮与两个不同的确认对话框交互,命令按钮“更新”与确认对话框交互

我的问题与其他示例/解决方案的主要区别在于,只有一个按钮。提交按钮上的 update="confirmValid" 仅适用于第一个按钮推送。

从“第二个”按钮按下成功调用 bean,forceRequest 方法不显示对话框

<p:commandButton id="myButton" update="confirmValid growl"
                 value="Submit"
                 actionlistener="#{message.sendMessage}"
...
/>

当请求无效时显示此对话框

<p:confirmDialog header="#{message.invalidValuesHdr}"
   id="confirmValidData" message="#{message.invalid}"
   wigdetVar="confirmValidData">
    <p:commandButton value="Ok" update="growl" oncomplete="PF('confirmValidData').hide()"
</p:confirmDialog>

更新进程标志时显示此对话框

<p:confirmDialog header="#{message.forceRequestHdr}"
   id="confirmValidData" message="#{message.invalid}"
   wigdetVar="confirmForce">
    <p:commandButton value="Ok" update="growl" oncomplete="PF('confirmForce').hide()"
</p:confirmDialog> 

豆:

@ViewScoped 

@Override 
public void sendMessage() {
  if (....)
    forceRequest();

}

public void forceRequest(){
   FacesMessage message = new 
   FacesMessage(FacesMessage.SEVERITY_INFO,"Message Title", "Message body");
   RequestContext.getCurrentInstance().showMessageInDialog(message);
}

Displays a dialog the method below does nothing, which is the issue

public void forceRequest(){
  RequestContext context = RequestContext.getCurrentInstance();
  context.openDialog("Confirm");
  context.execute("PF('confirmForce').jq.click();");
}

faces-config.xml 已更新

4

1 回答 1

0
public void forceRequest(){
  RequestContext.getCurrentInstance().execute("PF('confirmForce').show();");
}

上面是解决方案,现在到 bean

于 2021-11-05T16:20:38.757 回答