我有一個豐富的樹,它包含幾個節點。每個節點旁邊都有一個複選框。當我檢查複選框時,需要檢查與所有孩子有關的複選框,並且當我取消選中所有孩子時,必須取消選中。我在我的xhtml中有下面的代碼。在輔助bean中,我根據事件將所有孩子設置爲選中/取消選中。樹最初處於「摺疊」模式。當我點擊複選框並展開節點時,我可以看到所有正在檢查的孩子。但是,當我取消選中/檢查擴展模式時,這些值不會反映在子元素中。你能幫我讓我知道我錯過了什麼嗎?謝謝。JSF豐富的樹+ AJAX
<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>
我在猜測它的reRendering問題。你確定複選框被選中後樹會被重建嗎? –
感謝您的迴應艾莉 - 我不確定樹是否正在完全重建。我添加了與複選框「selected」屬性有關的布爾變量作爲輸出文本。該值正在改變我正在檢查的複選框 - 但不確定是否重新呈現chold元素。 –