我想通过支持调用 confirmDialog。这段代码工作得很好,但是如何设置消息并通过支持设置confirmDialog的actionlistener?有两个条件,而:

  • 用户在复选框上勾选选项A(我省略了代码),然后应该直接打印文本到控制台。 --> 这个是通过
  • 下面的代码完成的
  • 用户选中复选框上的选项 B,然后它应该显示 confirmDialog 并且当用户按下 YES 按钮时,它应该调用后台的另一个函数。

  • 怎么做?谢谢。
    <p:commandButton value="Execute" icon="ui-icon-circle-check"  update="frmContent" actionListener="#{backing.validate}" />
    
    <p:confirmDialog id="cfmDlg" widgetVar="wvCfmDlg" global="true" >
        <p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
        <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
    </p:confirmDialog>
    

    在支持:
    public void validate() {
        if(mode.equals("1")) {
            System.out.println("OK");
        } else {
            //call confirmDialog and set message + action listener
            RequestContext context = RequestContext.getCurrentInstance();
            context.execute("wvCfmDlg.show();");
        }
    }
    

    最佳答案

    如果我正确理解你的问题..我会这样做。

    xhtml

    <p:commandButton style="display: none"
                     widgetVar="confirmButton"
                     actionListener="#{backing.yesFunction}" >
       <p:confirm header="Confirmation" message="Are you sure?" />
    </p:commandButton>
    
    <p:commandButton value="Execute"
                     actionListener="#{backing.validate}" />
    
    <p:confirmDialog id="cfmDlg" global="true" >
          <p:commandButton value="Yes" />
          <p:commandButton value="No" />
    </p:confirmDialog>
    

    bean
    public void validate() {
       if(mode.equals("1")) {
           System.out.println("OK");
       } else {
        RequestContext context = RequestContext.getCurrentInstance();
        context.execute("PF('confirmButton').jq.click();");
       }
    }
    

    基本上,您以通常的方式添加一个隐藏按钮(使用 p:confirm),然后通过 jQuery 单击它。

    关于java - Primefaces 从 Backing 调用 ConfirmDialog,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21823859/

    10-13 04:30