豊富なツリーがあり、ノードがほとんどありません。各ノードの横にチェックボックスがあります。チェックボックスをオンにすると、すべての子に関連するチェックボックスをオンにする必要があり、チェックを外すと、すべての子をオフにする必要があります。xhtmlに以下のコードがあります。バッキング 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>