Как разместить несколько репитеров CMSRepeater в 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>

person Community    schedule 31.05.2013    source источник


Ответы (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>
person Apqu    schedule 31.05.2013
comment
Спасибо, используя то, что вы упомянули, мне удалось заставить его в значительной степени поработать, просто немного отредактировав с моей стороны :-) - person ; 31.05.2013

В качестве побочного момента я настоятельно рекомендую НЕ использовать вложенные повторители, если это действительно не нужно, или ваш набор данных довольно мал. У нас было большое раскрывающееся меню, охватывающее три уровня на одном из наших сайтов, которое работало таким образом. На сайте возникли проблемы с производительностью, и после выяснения причин было установлено, что виновато меню из-за большого количества привязок данных. Изменение его на использование иерархического средства просмотра исправило это, поскольку оно возвращает единственный набор данных, которым можно управлять с помощью иерархических преобразований.

Я думаю, вам следует изучить иерархические преобразования всякий раз, когда возможны вложенные повторители.

person ajbrun    schedule 13.09.2014