单击commandButton时可选择显示模态

时间:2017-06-07 19:05:28

标签: jquery jsf primefaces jsf-2

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

问题是我需要单独的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>

1 个答案:

答案 0 :(得分: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