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));
}
}
}
now i want to display the prowrapperlist as treeView on visualforce page. The problem is that it is multilevel deep and can be any level deep. so how can anyone tell me how can i show this on visualforce page.
on visualforce page i am using like this
<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>
means it is completely static. as much time i will use repeat i can show that much level deep tree. but i want it dynamic. means just like for loop. you can use any library i.e. javscript,jquery,angularjs
Thanks in advance.