有没有办法如何触发事件/使命令按钮隐藏当primefaces中的selectCheckboxMenu取消选中所有项目

时间:2013-09-27 07:20:44

标签: jsf primefaces

我想知道如果在取消选择selectCheckboxMenu中的所有项目时如何向最终用户隐藏命令按钮的方式。

感谢您的每一条意见和建议。

2 个答案:

答案 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。