2017-01-26 12 views
-1

У меня есть структура Sitecore элементов, который включает вSitecore Построение одной страницы из данных дочернего узла

  • Range
    • продукта 1
      • Наименование (текст)
      • продукта Изображение (изображение)
    • Продукт 2
      • Наименование (текст)
      • Изображение (текст)

мне нужно сделать один вид страницы, который перебирает каждый из этих узлов и собирает и выводит данные для каждого - может ли кто-нибудь помочь в методе, который я бы лучше всего использовал для этого?

Извините, если это основной вопрос, но любой пример кода будет оценен.

+0

MVC или WebForms? –

+0

через webforms - спасибо за ответ – user3779703

ответ

0

Вы должны действительно подумать только об использовании шаблона одного продукта с полем «Имя продукта» и поле «Изображение продукта» вместо того, чтобы иметь элементы с отдельными полями под продуктом. Но если это ваше требование, вот как вы это сделаете.

SubLayout (или макет в случае необходимости)

<div> 
    <sc:Text runat="server" id="txtProductName" Field="ProductName"/> 
    <sc:Image runat="server" id="imgProductImage" Field="ProductImage"/> 
</div> 

Затем в коде позади вас будет принимать текущий элемент (продукт и найти дочерний элемент, который соответствует тому, что вы ищете, и назначить его в качестве поле элемент.

private void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      BindData(); 
     } 
    } 

    private void BindData() 
    { 
     txtProductName.Item = Sitecore.Context.Item.Children.FirstOrDefault(x => x.TemplateID == Constants.Templates.ProductName); 
     imgProductImage.Item = Sitecore.Context.Item.Children.FirstOrDefault(x => x.TemplateID == Constants.Templates.ProductImage); 
    } 

В моем примере я его решение ищу элемент типа шаблона X, но вы могли бы пойти по имени или каким-либо другим способом познания.

+0

Как это * итерирование * над его «Продуктом»? Это просто рендеринг одного элемента. – sh1rts

+0

Его получение предметов на продукте и поиск нужного типа по ID шаблона. Item.Children.FirstOrDefault (x => x.TemplateID == Constants.Templates.ProductTemplate). Таким образом, это больше, чем просто один элемент. Все его дочерние элементы были запросом. –