Smarty:使用嵌套的{sections}重启{cycle}

时间:2010-08-25 12:40:32

标签: smarty

我正在尝试为包含{section} ... {/section}块的多个表生成背景颜色,但如果我不为{cycle}函数指定名称,则循环继续,而不是重新启动下次遇到它。当我在一个部分中使用命名循环和相同的命名循环重复时,会出现同样的问题。

示例:

{section name=i loop=$tables}
    <table>
        {section name=j loop=$tables[i].data}
           <tr class="{cycle name=bgcolor values='odd_row,even_row'}">
               ..
               ..
               ..
           </tr>
        {/section}
    </table>
{/section}

如何在{cycle}的每次迭代中让{section name=j}重置自己?是否可以在Smarty中撰写名称? (使用类似{cycle name=bgcolor.$i}

的内容

注意:我在一个.tpl中多次包含的另一个页面上遇到同样的问题,每次显示一个表格时,背景颜色周期从它离开的地方继续而不是重置它的自我。我知道这是正常行为(因为Smarty无法知道我的周期开始的地方),但我想改变它。

1 个答案:

答案 0 :(得分:3)

像这样使用reset=true

{section name=i loop=$tables}
    <table>
        {cycle name=bgcolor print=false reset=true values='odd_row,even_row'}
        {section name=j loop=$tables[i].data}
            <tr class="{cycle name=bgcolor values='odd_row,even_row'}">
                ..
                ..
                ..
            </tr>
        {/section}
    </table>
{/section}