Hi Ron,

I also searched a lot of time and found an example in the cocoon(2.1.10) distribution (heavy-binding.xml).

Here is a concrete example (using beans as data model):

definition:
...
<fd:repeater id="customers">
   <fd:label><i18n:text>customers</i18n:text>:</fd:label>
   <fd:widgets>
<fd:output id="customerId">
           <fd:datatype base="integer"/>
       </fd:output>
<!-- the nested repeater definition -->
       <fd:repeater id="orders">
           <fd:label><i18n:text>orders</i18n:text></fd:label>
           <fd:widgets>
               <fd:output id="orderId">
                   <fd:datatype base="integer"/>
               </fd:output>
<!-- additional order fields -->
           </fd:widgets>
       </fd:repeater>
<!-- additional customer fields -->
   </fd:widgets>
</fd:repeater>
...

binding:

...
<!-- suppose you have a data model bean with a method named 'getCustomers()' that returns a collection of Customers -->
<fb:repeater id="customers" parent-path="." row-path="customers">
   <fb:identity>
      <fb:value id="customerId" path="id" />
   </fb:identity>
   <fb:on-bind>
<!-- suppose your data model bean 'Customer' has a method named 'getOrders()' that returns a collection of Orders -->
      <fb:repeater id="orders" parent-path="." row-path="orders">
         <fb:identity>
            <fb:value id="orderId" path="id" />
         </fb:identity>
      </fb:repeater>
   </fb:on-bind>
</fb:repeater>
...

template:

...
<ft:repeater id="customers">
   <div>
       <table>
           <jx:choose>
               <jx:when test="${repeater.getSize() == 0}">
                 <tr><td>no customers</td></tr>
              </jx:when>
          <jx:otherwise>
              <ft:repeater-rows>
                  <tr>
                     <td>
                        <ft:widget id="customerId"/>
                     </td>
                     <td>
                        <ft:repeater id="orders">
<!-- layout the nested repeater --> </ft:repeater>
                     </td>
                  </tr>
               </ft:repeater-rows>
           </jx:otherwise>
       </table>
   </div>
</ft:repeater>
...

Hi All

I have a requirement to nest repeaters as follows:

A summary page displays a list of customers.
Each customer has a list of current orders.

I want to list the companies, each having a table of orders. I am using the binding framework to display the page. The current requirement is read only, but I suspect that the correct answer will cover editable fields as well. Does anyone have an example on exactly how to do this? A search of the Cocoon site suggests that this is possible, but does not give a definitive example. What I need is XML snippets from a sample page_template.xml, page.xml and page_bind.xml files.
Any help much appreciated.

Regards

Ron
--
Oliver Scheel
Software Engineer

Wazap AG
Karl-Liebknecht-Str. 5
D-10178 Berlin (Mitte)
E-Mail:  [EMAIL PROTECTED]
URL:     http://wazap.de / http://wazap.jp

Winner of the prestigious 2007 Red Herring Europe 100 award

Sitz:         Berlin (HRB 103534 B, Amtsgericht Berlin-Charlottenburg)
Vorstand:     Andreas Rührig (VV), Timo Meyer, Alexander Piutti, Philip
Gienandt
Aufsichtsrat: Martin Sinner (Vors.), Frank Böhnke, Florian Seubert, Markus 
Jorquera Imbernón


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to