gpt4 book ai didi

jsf - 如何展开treeTable的所有节点?

转载 作者:行者123 更新时间:2023-12-03 23:22:08 24 4
gpt4 key购买 nike

我有一个树形表和两个按钮:

  • 一个用于折叠树和
  • 另一个用于扩展,

  • 但它们不起作用。在支持 bean 我做了 root.setExpanded(true);root.setExpanded(false);但它不起作用。
    <center>
    <p:treeTable value="#{roleMB.root}" var="roleTreeTableVar"
    binding="#{roleMB.treeTable}" id="roleTreeTable">
    <f:facet name="header">
    <center>
    <p:commandButton value="Réduire tout"
    icon="ui-icon-folder-collapsed" style="font-size: 0.9em"
    actionListener="#{roleMB.expandAll}"
    update=":roleTreeTableForm:roleTreeTable" />
    <p:spacer width="30px" />
    <p:commandButton value="Développer tout"
    icon="ui-icon-folder-open" style="font-size: 0.9em"
    actionListener="#{roleMB.collapseAll}"
    update=":roleTreeTableForm:roleTreeTable" />
    <p:spacer width="30px" />
    </center>
    </f:facet>

    <p:column style="width:150px">
    <f:facet name="header">
    Nom de Role
    </f:facet>
    <h:outputText value="#{roleTreeTableVar.nom}" />
    </p:column>

    <p:column style="width:100px">
    <f:facet name="header">
    Id de role
    </f:facet>
    <h:outputText value="#{roleTreeTableVar.id}" />
    </p:column>

    <p:column style="width:20px">
    <p:commandLink oncomplete="dlgAddRole.show()" value="Ajouter"
    update=":addRoleForm:selectRolesNamesId">
    <f:setPropertyActionListener value="#{roleTreeTableVar}"
    target="#{roleMB.selectedRole}" />
    </p:commandLink>
    <p:commandLink oncomplete="delRole.show()" value="Supprimer">
    <f:setPropertyActionListener value="#{roleTreeTableVar}"
    target="#{roleMB.selectedRole}" />
    </p:commandLink>
    <p:commandLink oncomplete="editRole.show()" value="Modifier">
    <f:setPropertyActionListener value="#{roleTreeTableVar}"
    target="#{roleMB.selectedRole}" />
    </p:commandLink>
    </p:column>
    </p:treeTable>
    </center>

    最佳答案

    这是 Collapse 和 Expande 的递归方法。

    public void collapsingORexpanding(TreeNode n, boolean option) {
    if(n.getChildren().size() == 0) {
    n.setSelected(false);
    }
    else {
    for(TreeNode s: n.getChildren()) {
    collapsingORexpanding(s, option);
    }
    n.setExpanded(option);
    n.setSelected(false);
    }
    }
  • 变量 n 是您想要展开或折叠的节点。
  • 当变量选项为 false 时,n 的所有 child 都是
    在另一种情况下,折叠被展开
  • setSelected(false) 表示该节点未被选中
  • 关于jsf - 如何展开treeTable的所有节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920547/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com