【发布时间】:2014-06-21 13:57:01
【问题描述】:
我在 jsf + icefaces 中创建了 selectALL 复选框功能。我已经实现了一些功能,比如当我选中 selectAll 复选框时,它会选择所有页面中的所有复选框。但是当我进行分页并且如果我选中/未选中选中所有复选框时,它仅适用于该页面而不是所有页面。我的意思是行复选框的状态不一致。我尝试了 phaseListener 来解决这个问题,但没有运气.. 任何人都可以建议我解决方案..
我的代码:jsf
<ace:column id="checkBox">
<f:facet name="header">
<h:outputLabel>
<ice:selectBooleanCheckbox id="selectAllID"
value="#{shipBean.checkAll}"
valueChangeListener="#{shipBean.getCheck}"
partialSubmit="true" />
</h:outputLabel>
</f:facet>
<ice:selectBooleanCheckbox id="selectOne"
value="#{freight.checkBox}">
java:
if (shipTrackingData != null) {
if (shipTrackingData.getCheckAll()) {
for (ShipTrackBean check : shipTrackingData
.getShipTrackList()) {
check.setCheckBox(true);
}
} else {
for (ShipTrackBean check : shipTrackingData
.getShipTrackList()) {
check.setCheckBox(false);
}
}
}
谢谢...
【问题讨论】:
-
托管 Bean 的范围是什么。我认为您应该在 java 代码中获得一致的复选框值,但它们可能不会反映在 UI 上。如果您可以在转到上一页或下一页时启用 ajax 功能,并且如果您可以通过读取应该具有一致值的 bean 来呈现值,那么它可能会起作用。
-
@Manish 感谢您的回复.. 它是会话范围的管理 bean,我也尝试使用 viewscoped..