如何只选择父节点(在复选框p:树中)而不选择子节点?默认情况下,子节点也被选中,这是我想要避免的。所以问题是,我不能选择父节点而不选择子节点。
有解决方案吗?也许有一个方法?
谢谢!
下面是我的代码:<h:form id="selectCategoryForm">
<p:tree id="categoryTree" value="#{bean.categories}" var="node" selectionMode="checkbox" selection="#{bean.selectedCategories}" >
<p:treeNode>
<h:outputText value="#{node.path}" escape="false"/>
</p:treeNode>
</p:tree>
</h:form>
在树表上设置propagateSelectionDown="false"
以禁用选择向下传播
您可以使用:
<h:form id="selectCategoryForm">
<p:tree id="categoryTree" value="#{bean.categories}" var="node" selectionMode="checkbox" selection="#{bean.selectedCategories}" >
<p:ajax event="select" listener="#{bean.onNodeSelect}" update="@this"/>
<p:treeNode>
<h:outputText value="#{node.path}" escape="false"/>
</p:treeNode>
</p:tree>
</h:form>
and on the bean:
public void onNodeSelect(NodeSelectEvent event) {
TreeNode treeNode = event.getTreeNode();
TreeNode parentTreeNode = treeNode.getParent();
parentTreeNode.setSelected(true);
}