我有一棵丰富的树,它包含很少的节点。我在每个节点旁边都有一个复选框。当我选中一个复选框时,需要选中与所有孩子相关的复选框,当我取消选中所有孩子时,必须取消选中。我的 xhtml 中有以下代码。在 backing bean 中,我根据事件将所有子项设置为选中/未选中。树最初处于“折叠”模式。当我单击复选框并展开节点时,我可以看到所有子项都被选中。但是当我在扩展模式中取消选中/检查时,这些值不会反映在子元素中。你能帮我知道我错过了什么吗?谢谢。
<rich:tree id="producttree" switchType="server"
value="#updateProductBean.deviceServiceTreeRoot}" var="item">
<rich:treeNode id="productnode">
<h:selectBooleanCheckbox value="#{item.selected}"
rendered="#{item.value == null && item.checkbox == true}"
valueChangeListener="#{updateProductBean.submitUpdateProduct}">
<f:attribute name="selectedProductId" id="selectedProductId"
value="#{item.paramID}" />
<f:attribute name="selectedProductName" id="selectedProductName"
value="#{item.name}" />
<a4j:support event="onclick" reRender="producttree,productnode">
</a4j:support>
</h:selectBooleanCheckbox>
<h:outputText value="#{item.name}" rendered="#{item.value == null}" />
</rich:treeNode>
</rich:tree>