如何在 JSF -2 中创建全选复选框以选择页面中的所有选择框,而不是在其他页面上,因为这些复选框是列表并在每页中显示 20...
谢谢,亚历克斯
取决于您要达到的目标。
例如,您可以在<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 绑定。