Primefaces p:commandButton在添加禁用选项后停止发送actionListener

时间:2013-03-19 12:34:03

标签: jsf jsf-2 primefaces

我添加p:commandButton选项后,actionListeners停止发送disabled。为什么会这样?

我有一个p:selectOneListbox,需要在启用OK按钮之前选择一些内容:

<p:selectOneListbox value="#{FileSelectBean.fileNameSelected}">  
  <f:selectItems value="#{FileSelectBean.fileNames}" />
  <p:ajax update=":formFileSelect:okId" />
</p:selectOneListbox>  

我有一个OK按钮:

<p:commandButton id="okId" value="OK" 
    type="submit" update=":formEncryptionDialog" 
    actionListener="#{FileSelectBean.actionOk}" 
    oncomplete="dlgFileSelect.hide();"
    disabled="#{FileSelectBean.fileNameSelected.isEmpty()}">
</p:commandButton>

支持bean:

private String fileNameSelected = "";

没有disabled="#{FileSelectBean.fileNameSelected.isEmpty()}",一切正常。添加后,OK按钮被正确启用/禁用,但在单击按钮后停止调用FileSelectBean.actionOk

出了什么问题?

修改: 我已经删除<p:ajax update=":formFileSelect:okId" />并以其他方式刷新按钮,但它没有帮助。因此,它与ajax中的selectOneListbox无关。

1 个答案:

答案 0 :(得分:0)

试试这个:

<p:selectOneListbox id="primeOneListBox" value="#{FileSelectBean.fileNameSelected}">` 
     <f:selectItems value="#{FileSelectBean.fileNames}" />
     <p:ajax event="change" update=":formFileSelect:okId" process=":formFileSelect:primeOneListBox" />
</p:selectOneListbox>

检查选择后是否调用fileNameSelected setter方法