如何在JSF-2中创建选择全部复选框

时间:2013-02-11 04:59:15

标签: jsf-2 checkbox selectall

如何在JSF -2中创建全选复选框以选择页面中的所有选择框,而不是在另一页上选中,因为这些复选框是列表并在每页显示20 ...

谢谢, 亚历

1 个答案:

答案 0 :(得分:2)

取决于你想要达到的目标。

例如,您可以使用

<f:form>中加载复选框
<h:commandButton actionListener="{#myBean.checkAll}">
    <f:ajax render="checkboxes">
</h:commandButton>
<h:panelGroup id="checkboxes">
    <ui:repeat var="check" value="#{myBean.checkBoxes}">
    <h:selectBooleanCheckbox value=#{check.checked}/>
    <h:outputText value=#{check.checkedCaption}/>
    </ui:repeat>
</h:panelGroup>

然后,您可以使用以下bean方法和部分页面更新来检查它们:

public void checkAll(ActionEvent event){
    for(Check check : checkBoxes) {
        checkBoxes.setChecked(true);
    }
 }

当您在动作侦听器方法中使用与当前复选框状态相反的方式替换true时,可以通过以下方式取消选中所有功能。

修改即可。如果要稍后执行已检查属性的服务器端设置,例如在保存按钮单击期间,您可能需要检查/取消选中客户端上的复选框。因此,如果您使用的是jQuery 1.6+,则可以在视图中调用$('.checkbox').prop('checked', true);预设styleClass="checkbox" <h:selectBooleanCheckbox>。为此,您可以使用上面提到的简单javascript绑定按钮的javascript onclick方法。