[Zope] alternating colors based on sequence-index of outer loop

Dmitry Litovchenko Dmitry Litovchenko <deadq@bkzebra.com>
Tue, 26 Mar 2002 01:55:18 +0200


Try the following

      <dtml-in expr="Sections.objectValues('Section')" mapping>
          <dtml-if sequence-even>
             <dtml-call "REQUEST.set ('dcolor', '#EEEEEE')">
          <dtml-else>
             <dtml-call "REQUEST.set ('dcolor', '#DDDDDD')">
          </dtml-if>
         <dtml-in expr="_['sequence-item'].objectValues('Student')" mapping>
           <tr bgcolor=<dtml-var dcolor>>
                ..Fill in the row..
           </tr>
         </dtml-in>
      </dtml-in>

I hope you wrote <dtml-in> loops with no mistakes :) I corrected only
the row coloring code part.

--
Dmitry

> I have a folder called Sections that is filled with Section instances.
> Each Section contains a variable number of students, and I want all
> the students in a given section to have the same row color in my
> table, with sections alternating colors.

> I have nested dtml-in loops over the sections and students in each
> section, and want the rows of my table to alternate in batches
> depending on whether the outer loop is even or odd.  Basically, I need
> to do a dtml-let in the outer loop that the inner loop will access,
> but am having trouble with the syntax.

> Here is some example dtml with pseudo code to set the default_color

>       <dtml-in expr="Sections.objectValues('Section')" mapping>
>           <dtml-if sequence-even>
>              default_color="gray"
>           <dtml-else>
>              default_color="white"
>           </dtml-if>  
>          <dtml-in expr="_['sequence-item'].objectValues('Student')" mapping>
>           <tr default_color>
>                 ..Fill in the row..
>            </tr>
>          </dtml-in>
>       </dtml-in>


> Thanks for any help,
> John Hunter