你如何在Kentico中嵌套多个CMSRepeater?

时间:2013-05-31 15:03:26

标签: kentico

使用Kentico CMS框架(版本7)如何嵌套多个CMS中继器?

我尝试过以下绑定父级的内容,但是如何让孩子们绑定?

<cms:CMSRepeater ID="repProducts" runat="server" ClassNames="cms.product" OrderBy="NodeLevel,NodeOrder" SelectOnlyPublished="true"  MaxRelativeLevel="1">
<ItemTemplate>
      <%# Eval("DocumentName")%>
      <ul>
            <li>
                     <cms:CMSRepeater ID="repProductsNested" runat="server" ClassNames="cms.product" OrderBy="NodeLevel,NodeOrder" SelectOnlyPublished="true"  MaxRelativeLevel="1" Path="./%">
                     <HeaderTemplate>
                            <ul>
                     </HeaderTemplate>
                     <ItemTemplate>
                            <li><%# Eval("DocumentName")%>
                     </ItemTemplate>
                     </cms:CMSRepeater>
                     <FooterTemplate>
                            </ul>
                     </FooterTemplate>
            </li>
      </ul>
</ItemTemplate>
</cms:CMSRepeater>

2 个答案:

答案 0 :(得分:2)

我认为您在第一个转发器上缺少两个重要属性 DelayedLoading =“true” NestedControlsID =“repProductsNested”因此您的代码应如下所示:

<cms:CMSRepeater ID="repProducts" runat="server" ClassNames="cms.product" OrderBy="NodeLevel,NodeOrder" SelectOnlyPublished="true"  MaxRelativeLevel="1" NestedControlsID="repProductsNested" DelayedLoading="true">
<ItemTemplate>
      <%# Eval("DocumentName")%>
      <ul>
            <li>
                     <cms:CMSRepeater ID="repProductsNested" runat="server" ClassNames="cms.product" OrderBy="NodeLevel,NodeOrder" SelectOnlyPublished="true"  MaxRelativeLevel="1" Path="./%">
                     <HeaderTemplate>
                            <ul>
                     </HeaderTemplate>
                     <ItemTemplate>
                            <li><%# Eval("DocumentName")%>
                     </ItemTemplate>
                     </cms:CMSRepeater>
                     <FooterTemplate>
                            </ul>
                     </FooterTemplate>
            </li>
      </ul>
</ItemTemplate>
</cms:CMSRepeater>

答案 1 :(得分:0)

作为一个侧面点,我强烈建议不要使用嵌套转发器,除非你真的需要,或者你的数据集相当小。我们有一个大型下拉菜单,跨越我们的一个网站上的三个级别,以这种方式工作。该网站遇到了性能问题,在调查原因之后,菜单被发现是罪魁祸首,因为它有许多数据绑定。将其更改为使用分层查看器修复此问题,因为它返回单个数据集,可以使用分层转换进行操作。

我认为你应该在嵌套转发器出现时考虑分层转换。