我想知道如果在取消选择selectCheckboxMenu中的所有项目时如何向最终用户隐藏命令按钮的方式。
感谢您的每一条意见和建议。
答案 0 :(得分:0)
对于ex的命令按钮设置渲染属性
在托管bean中,使用getter和setter创建一个布尔变量allCheckBoxNotSelected
对于valueChangeListener属性中的复选框,调用一个托管bean方法,该方法将检查所有复选框的当前值。如果未选中,则将false设置为allCheckBoxNotSelected变量,然后通过其id更新命令按钮。
答案 1 :(得分:0)
只需让命令按钮的rendered
属性检查select复选框菜单的value
属性后面的相同属性是否不代表空集合。您可以通过更改选择复选框菜单时使用<p:ajax>
更新按钮的持久父组件来重新执行此检查。
所以,简而言之:
<p:selectCheckboxMenu value="#{bean.selectedItems}">
<f:selectItems value="#{bean.availableItems}" />
<p:ajax update="button" />
</p:selectCheckboxMenu>
<h:panelGroup id="button">
<p:commandButton value="Submit" rendered="#{not empty bean.selectedItems}" />
</h:panelGroup>
不需要不必要的代码,例如专门用于值更改的其他bean属性或侦听器方法以及rendered
属性或丑陋的黑客攻击,例如valueChangeListener
,如其他答案所述,其回答者为{{3}考虑到JSF 1.x。