如何在JSF -2中创建全选复选框以选择页面中的所有选择框,而不是在另一页上选中,因为这些复选框是列表并在每页显示20 ...
谢谢, 亚历
答案 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方法。