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}
<apex:inputCheckbox value="{!proc2.isSelected}"/>
</li>
</apex:repeat>
</ul>
</li>
</apex:repeat>
</ul>
</li>
</apex:repeat>
</ul>
</li>
</apex:repeat>
意味着它是完全静态的。尽可能多的时间我会使用重复我可以显示那个级别很深的树。但我希望它充满活力。就像循环一样。 你可以使用任何库,即javscript,jquery,angularjs
提前致谢。