jsf p:树复选框选择

时间:2014-03-21 07:12:49

标签: jsf checkbox primefaces tree

如何在没有孩子的情况下仅选择父节点(在复选框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>

2 个答案:

答案 0 :(得分:1)

在treetable上设置propagateSelectionDown="false"以禁用树下的选择传播

答案 1 :(得分:0)

您可以使用:

<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>

并在bean上:

public void onNodeSelect(NodeSelectEvent event) {
    TreeNode treeNode = event.getTreeNode();
    TreeNode parentTreeNode = treeNode.getParent();
    parentTreeNode.setSelected(true);
}