Sitecore从子节点数据构建单个页面

时间:2017-01-26 07:29:31

标签: sitecore sitecore7

我有一个Sitecore结构的项目,包括

  • 范围
    • 产品1
      • 产品名称(文字)
      • 产品图片(图片)
    • 产品2
      • 产品名称(文字)
      • 产品图片(文字)

我需要制作单个页面视图,遍历每个节点,并为每个节点收集和输出数据 - 任何人都可以协助我最好用这个方法吗?

很抱歉,如果这是一个基本问题,但我们将不胜感激任何示例代码。

1 个答案:

答案 0 :(得分: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的项目,但你可以通过名字或其他方式知道。