Treatable行数据扩展Treetable

时间:2017-01-17 23:27:12

标签: java primefaces jsf-2.2

此示例包含列出角色和每个角色,我想显示与其关联的组和用户。

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>

CONTROLLER

用于显示每个角色的treetable的方法。

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);
        }
    }

1 个答案:

答案 0 :(得分:0)

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

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

在你的方法中,你应该传递你正在扮演的角色,然后你必须用角色组来填充树的节点:

public void createRoot(Role role){
    ......
}

你可以看到如何摆弄treeTable:Input type=password, don't let browser remember the password