我需要同样的帮助,我想显示一个按钮,当我选择一个项目从a,这是我的代码:
<h:selectOneMenu value="#{managedBeanProjects.etat}">
<f:selectItems value="#{managedBeanProjects.statueOptions}">
</h:selectOneMenu>
我想显示这个按钮,默认情况下它是禁用的
<p:commandButton id="buttonStatue" value="ok"
update=":form1:growl :form1:pTest" icon="ui-icon-check" />
谢谢。
当#{managedBeanProjects.etat}
不为空时,仅让按钮的rendered
属性评估true
。您可以使用<f:ajax>
在更改下拉菜单时以ajax方式更新HTML表示。请注意,你应该ajax更新按钮的父组件,因为它不可能ajax更新一个组件,它本身从来没有在第一个地方呈现。
<h:selectOneMenu value="#{managedBeanProjects.etat}">
<f:selectItems value="#{managedBeanProjects.statueOptions}">
<f:ajax render="buttonStatueParent" />
</h:selectOneMenu>
<h:panelGroup id="buttonStatueParent">
<p:commandButton id="buttonStatue" value="ok"
update=":form1:growl :form1:pTest" icon="ui-icon-check"
rendered="#{not empty managedBeanProjects.etat}" />
</h:panelGroup>
参见:
- 为什么我需要在组件中嵌套render ="#{some}"在另一个组件,当我想ajax更新它?