• Repeat Tree inside Repeat Tree not working

    By Chintan Parekh 1 decade ago

    Hello,

    I am having an accordion navigation with 2 repeat tree controls inside each other. Problem is the child repeat does not recognize the indexVar of parent repeat. Here is the code for reference:

     

    <xe:repeatTreeNode indexVar="indexVar" var="var">
    
    <xe:this.children>
    
    <xe:basicContainerNode>
    
    <xe:this.label><![CDATA[#{javascript:database.getProfileDocument("K99",@UserName()).getItemValue("ViewCategories").get(indexVar);}]]></xe:this.label>
    
    <xe:this.children>
    
    <xe:repeatTreeNode var="cvar"
    
    indexVar="cindexVar">
    
    <xe:this.value><![CDATA[#{javascript:var m=database.getProfileDocument("K99",@UserName()).getItemValue("ViewCategories").get(indexVar);
    
    database.getProfileDocument("K99",@UserName()).getItemValue(m);
    
    }]]></xe:this.value>
    
    <xe:this.children>
    
    <xe:basicLeafNode>
    
    <xe:this.href><![CDATA[#{javascript:var m=database.getProfileDocument("K99",@UserName()).getItemValue("ViewCategories").get(indexVar);
    
    var x=database.getProfileDocument("K99",@UserName()).getItemValue(m).get(cindexVar);
    
    var y="../"+session.getCurrentDatabase().getFileName()+"/home.xsp?page=view"+x;
    
    return y;}]]></xe:this.href>
    
    <xe:this.label><![CDATA[#{javascript:var m=database.getProfileDocument("K99",@UserName()).getItemValue("ViewCategories").get(indexVar);
    
    database.getProfileDocument("K99",@UserName()).getItemValue(m).get(cindexVar);
    
    }]]></xe:this.label>
    
    </xe:basicLeafNode>
    
    </xe:this.children></xe:repeatTreeNode>
    
    </xe:this.children></xe:basicContainerNode>
    
    </xe:this.children>
    
    <xe:this.value><![CDATA[#{javascript:database.getProfileDocument("K99",@UserName()).getItemValue("ViewCategories")}]]></xe:this.value>
    

    </xe:repeatTreeNode>

    Hoping to here some suggestions.

     

    Regards,

    CHINTAN P.

    • Got it to work.

      By Philippe Riand 1 decade ago

      It needs an intermediate container, but I got it to work with the sample bellow.

       

      &lt;xe:outline id=&quot;outline4&quot;&gt;
      
      &lt;xe:this.treeNodes&gt;
      
      &lt;xe:repeatTreeNode var=&quot;val&quot;&gt;
      
      &lt;xe:this.children&gt;
      
      &lt;xe:basicLeafNode&gt;
      
      &lt;xe:this.label&gt;&lt;![CDATA[#{javascript:return val}]]&gt;&lt;/xe:this.label&gt;
      
      &lt;/xe:basicLeafNode&gt;
      
      &lt;xe:basicContainerNode label=&quot;#{javascript:return &#39;container:&#39;+val}&quot;&gt;
      
      &lt;xe:this.children&gt;
      
      &lt;xe:repeatTreeNode var=&quot;val2&quot;&gt;
      
      &lt;xe:this.children&gt;
      
      &lt;xe:basicLeafNode&gt;
      
      &lt;xe:this.label&gt;&lt;![CDATA[#{javascript:return val2;}]]&gt;&lt;/xe:this.label&gt;
      
      &lt;/xe:basicLeafNode&gt;
      
      &lt;/xe:this.children&gt;
      
      &lt;xe:this.value&gt;&lt;![CDATA[#{javascript:return [&quot;A&quot;,&quot;B&quot;];}]]&gt;&lt;/xe:this.value&gt;
      
      &lt;/xe:repeatTreeNode&gt;
      
      &lt;/xe:this.children&gt;
      
      &lt;/xe:basicContainerNode&gt;
      
      &lt;/xe:this.children&gt;
      
      &lt;xe:this.value&gt;&lt;![CDATA[#{javascript:return [&quot;1&quot;,&quot;2&quot;,&quot;3&quot;];}]]&gt;&lt;/xe:this.value&gt;
      
      &lt;/xe:repeatTreeNode&gt;
      
      &lt;/xe:this.treeNodes&gt;
      
      &lt;/xe:outline&gt;
      
      • Thanks but same problem

        By Chintan Parekh 1 decade ago

        Well, This approach surely reduces my lines of code but the problem is same..the iterator value in the second loop does not recognize the first one. For example if in your example i just replace "B" by val it throws an error showing that variable val not found.

        Your code:

         

        &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
        
        &lt;xp:view xmlns:xp=&quot;http://www.ibm.com/xsp/core&quot;
        
        xmlns:xe=&quot;http://www.ibm.com/xsp/coreex&quot;&gt;
        
        &nbsp;
        
        &nbsp;
        
        &nbsp;
        
        &lt;xe:outline id=&quot;outline4&quot;&gt;
        
        &lt;xe:this.treeNodes&gt;
        
        &lt;xe:repeatTreeNode var=&quot;val&quot;&gt;
        
        &lt;xe:this.children&gt;
        
        &lt;xe:basicLeafNode&gt;
        
        &lt;xe:this.label&gt;&lt;![CDATA[#{javascript:return val}]]&gt;&lt;/xe:this.label&gt;
        
        &lt;/xe:basicLeafNode&gt;
        
        &lt;xe:basicContainerNode label=&quot;#{javascript:return &#39;container:&#39;+val}&quot;&gt;
        
        &lt;xe:this.children&gt;
        
        &lt;xe:repeatTreeNode var=&quot;val2&quot;&gt;
        
        &lt;xe:this.children&gt;
        
        &lt;xe:basicLeafNode&gt;
        
        &lt;xe:this.label&gt;&lt;![CDATA[#{javascript:return val2;}]]&gt;&lt;/xe:this.label&gt;
        
        &lt;/xe:basicLeafNode&gt;
        
        &lt;/xe:this.children&gt;
        
        &lt;xe:this.value&gt;&lt;![CDATA[#{javascript:return [&quot;A&quot;,val];}]]&gt;&lt;/xe:this.value&gt;
        
        &lt;/xe:repeatTreeNode&gt;
        
        &lt;/xe:this.children&gt;
        
        &lt;/xe:basicContainerNode&gt;
        
        &lt;/xe:this.children&gt;
        
        &lt;xe:this.value&gt;&lt;![CDATA[#{javascript:return [&quot;1&quot;,&quot;2&quot;,&quot;3&quot;];}]]&gt;&lt;/xe:this.value&gt;
        
        &lt;/xe:repeatTreeNode&gt;
        
        &lt;/xe:this.treeNodes&gt;
        
        &lt;/xe:outline&gt;
        

        I have to use the index vaiable in the in the second loop(more or less similar to normal var). Is there an alternative approach?

        &nbsp;
        

         

    • I've got the same problem

      By Nigel Roulston 1 decade ago

      Trying to dynamically create a two level navigator hierarchy from a domino view where the second level is

      the same for each first level eg



      Level 1

      by id<br/>
      by date<br/>
      by author<br/>
      

      Level 2

      by id<br/>
      by date<br/>
      by author<br/>
      

      Level n

      by id<br/>
      by date<br/>
      by author<br/>
      



      Where n is unknown. Because I can't reference the top level (repeattreenode) variable, I can't do things

      like set the selection property or query string etc for any of the second levels so they are unique to that

      particular grouping.