1
public class product2tree
{


public List<prowrapper> prowrapperlist{get;set;}
Map<ID,product2__c> promap;

public product2tree()
{
    prowrapperlist=new List<prowrapper>();
    promap=new Map<ID,product2__c>();
    for(product2__c pro:[select name,product2__c,(select name,product2__c from product2s__r) from product2__c])
        {
            promap.put(pro.id,pro);
        }
    for(ID id:promap.keySet())
        {
            product2__c pro=promap.get(id);
            if(pro.product2__c==null)
                {
                  prowrapperlist.add(new prowrapper(pro,promap));
                }
        }
}

public class prowrapper
{
     public String name{get;set;}
     public List<prowrapper> child{get;set;}
     public boolean isSelected{get;set;}
     Id proid;

     public prowrapper(product2__c pro,Map<ID,product2__c> promap1)
        {
            child=new List<prowrapper>();
            pro=promap1.get(pro.id);
            name=pro.name;
            isSelected=false;
            proid=pro.id;
            for(product2__c pro1:pro.product2s__r)
              {
                 child.add(new prowrapper(pro1,promap1));                          
              }

        }
}

}

现在我想在visualforce页面上将prowrapperlist显示为treeView。问题是它是多层次的,可以是任何层次的深度。那么谁能告诉我如何在visualforce页面上显示这个。

在我这样使用的visualforce页面上

<apex:repeat value="{!prowrapperlist}" var="pro">


    <li>
        {!pro.name}

        <ul>
        <apex:repeat value="{!pro.child}" var="proc">
            <li>
                {!proc.name} 
                <ul>
                    <apex:repeat value="{!proc.child}" var="proc1">
                    <li>
                        {!proc1.name} 
                        <ul>
                            <apex:repeat value="{!proc1.child}" var="proc2">
                            <li>
                                {!proc2.name} &nbsp;&nbsp;&nbsp;&nbsp;

                                <apex:inputCheckbox value="{!proc2.isSelected}"/>

                            </li>
                              </apex:repeat>
                       </ul>

                    </li>
                    </apex:repeat>
                </ul>



            </li>
        </apex:repeat>
        </ul>

    </li>

 </apex:repeat>   

意味着它是完全静态的。尽可能多的时间我将使用重复,我可以展示这么多层次的深度树。但我希望它是动态的。意味着就像 for 循环。您可以使用任何库,即 javscript、jquery、angularjs

提前致谢。

4

0 回答 0