Java 数据表行扩展树表

Java 数据表行扩展树表,java,primefaces,jsf-2.2,Java,Primefaces,Jsf 2.2,这个示例包括列出角色,对于每个角色,我想显示与其关联的组和用户 <p:column headerText="Designation"> <h:outputText value="#{rl.designation}" /> </p:column> <p:rowExpansion> <p:treeTable value="#{rol

这个示例包括列出角色,对于每个角色,我想显示与其关联的组和用户

        <p:column headerText="Designation">
            <h:outputText value="#{rl.designation}" />
        </p:column>


            <p:rowExpansion>
                <p:treeTable value="#{roleMB.root}" var="document">
                  <p:column headerText="Designation">
                   <h:outputText value="#{document}" />
                   </p:column>
                 </p:treeTable>
            </p:rowExpansion>
</p:dataTable>
XHTML

        <p:column headerText="Designation">
            <h:outputText value="#{rl.designation}" />
        </p:column>


            <p:rowExpansion>
                <p:treeTable value="#{roleMB.root}" var="document">
                  <p:column headerText="Designation">
                   <h:outputText value="#{document}" />
                   </p:column>
                 </p:treeTable>
            </p:rowExpansion>
</p:dataTable>

控制器

        <p:column headerText="Designation">
            <h:outputText value="#{rl.designation}" />
        </p:column>


            <p:rowExpansion>
                <p:treeTable value="#{roleMB.root}" var="document">
                  <p:column headerText="Designation">
                   <h:outputText value="#{document}" />
                   </p:column>
                 </p:treeTable>
            </p:rowExpansion>
</p:dataTable>
用于显示每个角色的树表的方法

        <p:column headerText="Designation">
            <h:outputText value="#{rl.designation}" />
        </p:column>


            <p:rowExpansion>
                <p:treeTable value="#{roleMB.root}" var="document">
                  <p:column headerText="Designation">
                   <h:outputText value="#{document}" />
                   </p:column>
                 </p:treeTable>
            </p:rowExpansion>
</p:dataTable>
public void createRoot(){
        List<AffectationRoleGroupe> groupesRole=new ArrayList<AffectationRoleGroupe>();
        for(Role rl:roles){

        root=new DefaultTreeNode("Root", null);

        groupesRole=rl.getAffectationsRG();
        for(AffectationRoleGroupe a:groupesRole){
            System.out.println(rl.getDesignation());
            System.out.println(a.getGroupe().getDesignation());
            TreeNode node = new DefaultTreeNode( a.getGroupe().getDesignation(), root);
        }
    }
public void createRoot(){
列表组OLE=new ArrayList();
for(角色rl:角色){
root=新的DefaultTreeNode(“root”,null);
groupesRole=rl.getAffectationsRG();
for(做作角色组a:组角色){
System.out.println(rl.getDesignation());
System.out.println(a.getGroupe().getDesignation());
TreeNode=新的DefaultTreeNode(a.getGroupe().getDesignation(),root);
}
}

首先,您缺少触发每个角色列表组生成的rowToggle事件:

        <p:column headerText="Designation">
            <h:outputText value="#{rl.designation}" />
        </p:column>


            <p:rowExpansion>
                <p:treeTable value="#{roleMB.root}" var="document">
                  <p:column headerText="Designation">
                   <h:outputText value="#{document}" />
                   </p:column>
                 </p:treeTable>
            </p:rowExpansion>
</p:dataTable>
<p:ajax event="rowToggle" listener="#{managedBean.createRoot(role)}" update=":treeGroupe" />

<p:rowExpansion>
    <p:treeTable id="treeGroupe" value="#{roleMB.root}" var="groupe">
        <p:column headerText="Designation">
            <h:outputText value="#{groupe.designation}" />
        </p:column>
    </p:treeTable>
</p:rowExpansion>

您可以看到如何hundle treeTable:

问题是什么?
        <p:column headerText="Designation">
            <h:outputText value="#{rl.designation}" />
        </p:column>


            <p:rowExpansion>
                <p:treeTable value="#{roleMB.root}" var="document">
                  <p:column headerText="Designation">
                   <h:outputText value="#{document}" />
                   </p:column>
                 </p:treeTable>
            </p:rowExpansion>
</p:dataTable>