0

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

谢谢,亚历克斯

4

1 回答 1

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);presetting styleClass="checkbox"of 。<h:selectBooleanCheckbox>为此,例如,您可以将按钮的 javascript onclick 方法与上面建议的简单 javascript 绑定。

于 2013-02-11T13:10:58.470 回答