【问题标题】:Show modal optionally when commandButton clicked单击命令按钮时可选择显示模式
【发布时间】:2017-11-09 07:00:19
【问题描述】:

我有一个问题,我需要根据输入字段的值显示一个模式,所以我在输入字段中写了一些值,单击保存按钮,根据该值我应该运行 db 查询,如果结果是present 然后显示模态,否则不显示。最好的方法是什么?

一个问题是我需要有单独的 onclick 和 oncomplete 事件。

 <p:commandButton id="save_button"
  value="Save"
  update="@([id*=modalId]) @form"
  onclick="jQuery('#modalId').show();"
  action="#{cc.attrs.saveAction}">
  </p:commandButton>


   <p:inputNumber required="true"
   value="#{bean.number}">
   </p:inputNumber>

【问题讨论】:

标签: jquery jsf primefaces jsf-2


【解决方案1】:

您可以在后台 bean 中设置 db 结果,然后将 .show() 调用更改为 oncomplete 属性,这样您就可以根据查询结果有条件地显示模态面板。

public class BackingBean{
    private Object dbResult;

    public Object getDbResut(){ return dbResult; }

    public void executeDbQuery(){
          dbResult = yourDbApi.doSomeQuery();
    }
}


<p:commandButton id="save_button"
  value="Save"
  update="@([id*=modalId]) @form"
  actionListener="#{bean.executeDbQuery}">
  action="#{cc.attrs.saveAction}"
  ocomplete="#{not empty bean.dbResult ? 'jQuery('#modalId').show();' : ''}">
  </p:commandButton>


   <p:inputNumber required="true"
   value="#{bean.number}">
   </p:inputNumber>

actionListeneraction 之前执行,因此保证在您的操作调用之后 oncomplete 将采用正确的 bean.dbResult

【讨论】:

    猜你喜欢
    • 2011-11-24
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多