[Ajax4JSF] 请教Icefaces tree如何动态加载下一级节点?

nj_first 2009-10-23
这两天在看Icefaces中的Tree控件,在它的教程中节点都是事先初始化好的。那么这样就会有一个问题,但我树很深,我没必要在初始化时就初始化好这棵树。我想实现在电解展开节点是在初始化加载,不知给为有谁做过这方面的工作或尝试。

Icefaces中Tree控件使用教程地址:
http://facestutorials.icefaces.org/tutorial/tree-tutorial.html
wgoku 2009-11-05
这个要手动加载的。。。我也没找到什么好办法 我是 用多次循环的方法生成的。
wgoku 2009-11-05
web界面

 <ice:panelGrid columns="1">
                            <ice:tree id="tree1" value="#{Organization$OrgList.model}" var="item">
                                <ice:treeNode id="treeNode1">
                                    <f:facet name="content">
                                        <ice:panelGroup id="panelGroup2" style="display: inline;">
                                            <ice:commandLink action="#{Organization$OrgList.tree1_action}" id="commandLink1">
                                                <f:param name="name" value="#{item.userObject.text}"/>
                                                <ice:outputText id="outputText1" style="font-family: Arial,Helvetica,sans-serif; font-size: 18px" value="#{item.userObject.text}"/>
                                            </ice:commandLink>
                                        </ice:panelGroup>
                                    </f:facet>
                                </ice:treeNode>
                            </ice:tree>
                        </ice:panelGrid>



java 代码
  DefaultMutableTreeNode rootTreeNode = new DefaultMutableTreeNode();
        IceUserObject rootObject = new IceUserObject(rootTreeNode);
        //懒啦一些直接写的跟节点
        rootObject.setText("根节点");
        rootObject.setExpanded(true);
        rootTreeNode.setUserObject(rootObject);
        //就是用循环赋值给 model
        model = new DefaultTreeModel(rootTreeNode);
   ;
   
        if (note1.size() > 0) {
            //我的数据是list 第2个是组织名字
            for (int i = 1; note1.size() > i; i += 2) {
                String personName = (String) note1.get(i);
                DefaultMutableTreeNode branch1Node = new DefaultMutableTreeNode();
                IceUserObject branch1Object = new IceUserObject(branch1Node);
                branch1Object.setText(personName);
                branch1Object.setExpanded(true);
                branch1Node.setUserObject(branch1Object);
                rootTreeNode.add(branch1Node);

                Integer id = (Integer) note1.get(i - 1);

                //getList2 是一个封装的方法 得到2级结点
                this.setNote2(getList2(id));

               
                if (note2.size() > 0) {

                    for (int j = 1; j < note2.size(); j += 2) {
                        String name = (String) note2.get(j);
                        DefaultMutableTreeNode branch2Node = new DefaultMutableTreeNode();
                        IceUserObject branch2Object = new IceUserObject(branch2Node);
                        branch2Object.setText(name);
                        branch2Object.setExpanded(true);
                        branch2Node.setUserObject(branch2Object);
                        branch1Node.add(branch2Node);
                        //如果要更多节点 可以继续循环,,,

                    }
                }

            }
        }






本人菜鸟入职2个多月 多多指教
nj_first 2009-11-10
我找到一个方法,就是不知道在实际使用中稳定性怎样
Gothic 2009-11-11
没有一个expandListener?或者可以监听到onexpand事件吗?
nj_first 2009-11-11
你可以取得navigationnode,这个就是你点击的节点,在这个节点下添加东西。
Global site tag (gtag.js) - Google Analytics