首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><p:treeTable>重复行

<p:treeTable>重复行
EN

Stack Overflow用户
提问于 2013-09-19 15:04:33
回答 1查看 921关注 0票数 0

我有一套课程必须-许多与自己的关系。它们用于维护层次树结构。

我试图使用primefaces的TreeTable组件来显示该层次结构。我通过从TreeNode继承创建了一个DefaultTreeNode实现:

代码语言:javascript
复制
@ManagedBean
@SessionScoped
public class TreeNavigationController implements Serializable 
{
    public static class GroupNode extends DefaultTreeNode implements Serializable
    {
    private List<TreeNode> childNodes = null;

    public TickerNode(Object data, TreeNode descriptionNode) {
        super(data, descriptionNode);
    }

    public List<Object> subgroups() {
        // fetch subgroups from backend
        ...
    }

    @Override
        public int getChildCount() {
        return getSubgroups().size();
    }

    @Override
        public List<TreeNode> getChildren() {
        if (childNodes==null) {
        childNodes = new ArrayList<TreeNode>();
        for (TickerGroup g : getSubgroups())
            childNodes.add(new TickerNode(g,this));
        }           
        return childNodes;
    }
    }

    public TreeNavigationController() {
    root = new DefaultTreeNode("root", null);
    // fetch top groups from backend
    List<Object> topGroups = ...
    for (Object g : topGroups) 
        GroupNode gn = new GroupNode(g,root);
    }
}

XHTML很简单:

代码语言:javascript
复制
<p:treeTable id="treetable" value="#{treeNavigationController.root}" var="node" binding="#{treeNavigationController.treeTable}">
    <p:column style="width:32%">
        <h:outputText value="#{node.label}" />
    </p:column>
    <p:column style="width:4%">
        <p:commandLink  title="Klick me" styleClass="ui-icon ui-icon-search">
            <f:setPropertyActionListener value="#{node}" target="#treeNavigationController.selectedGroup}" />
        </p:commandLink>
    </p:column>
</p:treeTable>

所有这些都很好。当树展开另一个级别时,将调用getChildren(),依此类推。只有一个问题:所有行(除了顶部的行)都是复制的

我验证了数据源只返回正确的对象一次,GroupNode对象也只创建了一次。有什么好主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-19 15:51:14

DefaultTreeNode的构造函数已经将节点添加到子节点。也许它能帮助别人避免同样的麻烦。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18898309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档